summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2020-04-25 07:53:37 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2020-04-25 07:53:37 +0200
commitbb10352242dceb863069797bb92131944b0ac62f (patch)
treed3f5ceea6723e3d6c901652146e41ffe45100c9b /pkgs
parent7fb1ff90031c59cbc9ef79224516a74bc138c7a6 (diff)
parent5c70040db2dd2123f7728f1bdcd40d5018de0ef9 (diff)
downloadnixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar.gz
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar.bz2
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar.lz
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar.xz
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.tar.zst
nixpkgs-bb10352242dceb863069797bb92131944b0ac62f.zip
Merge staging-next into staging
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/clementine/default.nix4
-rw-r--r--pkgs/applications/audio/dfasma/default.nix4
-rw-r--r--pkgs/applications/audio/iannix/default.nix4
-rw-r--r--pkgs/applications/audio/musikcube/default.nix56
-rw-r--r--pkgs/applications/audio/musikcube/dont-strip.patch14
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix6
-rw-r--r--pkgs/applications/audio/traverso/default.nix4
-rw-r--r--pkgs/applications/audio/x42-plugins/default.nix8
-rw-r--r--pkgs/applications/editors/emacs-modes/melpa-packages.nix120
-rw-r--r--pkgs/applications/editors/mindforger/default.nix4
-rw-r--r--pkgs/applications/editors/okteta/default.nix4
-rw-r--r--pkgs/applications/editors/typora/default.nix2
-rw-r--r--pkgs/applications/graphics/awesomebump/default.nix11
-rw-r--r--pkgs/applications/graphics/phototonic/default.nix4
-rw-r--r--pkgs/applications/graphics/qcomicbook/default.nix4
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix4
-rw-r--r--pkgs/applications/misc/bibletime/default.nix4
-rw-r--r--pkgs/applications/misc/candle/default.nix4
-rw-r--r--pkgs/applications/misc/fitnesstrax/default.nix43
-rw-r--r--pkgs/applications/misc/khal/default.nix7
-rw-r--r--pkgs/applications/misc/kitty/default.nix4
-rw-r--r--pkgs/applications/misc/lutris/default.nix5
-rw-r--r--pkgs/applications/misc/openbrf/default.nix4
-rw-r--r--pkgs/applications/misc/qt-box-editor/default.nix5
-rw-r--r--pkgs/applications/misc/valentina/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix94
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/common.nix361
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/default.nix205
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch26
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch61
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch17
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch11
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/vaapi-fix.patch74
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch13
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix93
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix6
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix42
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/update.nix271
-rwxr-xr-xpkgs/applications/networking/browsers/ungoogled-chromium/update.sh4
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/cluster/cni/plugins.nix2
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix4
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/dnscontrol/deps.nix1236
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/ricochet/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/swift-im/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/tensor/default.nix4
-rw-r--r--pkgs/applications/networking/msmtp/default.nix7
-rw-r--r--pkgs/applications/networking/p2p/stig/default.nix24
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/office/elementary-planner/0001-Revert-Add-patch.patch84
-rw-r--r--pkgs/applications/office/elementary-planner/default.nix35
-rw-r--r--pkgs/applications/office/scribus/unstable.nix2
-rw-r--r--pkgs/applications/science/biology/quast/default.nix58
-rw-r--r--pkgs/applications/science/electronics/caneda/default.nix4
-rw-r--r--pkgs/applications/science/logic/verifast/default.nix2
-rw-r--r--pkgs/applications/science/misc/rink/default.nix2
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix2
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/version-management/arch/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-gone/default.nix14
-rw-r--r--pkgs/applications/video/bomi/default.nix11
-rw-r--r--pkgs/applications/video/qmediathekview/default.nix4
-rw-r--r--pkgs/applications/video/qstopmotion/default.nix4
-rw-r--r--pkgs/applications/virtualization/aqemu/default.nix4
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix2
-rw-r--r--pkgs/applications/virtualization/crosvm/default.nix12
-rwxr-xr-xpkgs/applications/virtualization/crosvm/update.py2
-rw-r--r--pkgs/applications/virtualization/crosvm/upstream-info.json22
-rw-r--r--pkgs/applications/virtualization/podman/default.nix3
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix14
-rw-r--r--pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix2
-rwxr-xr-xpkgs/applications/virtualization/virtualbox/update.py85
-rwxr-xr-xpkgs/applications/virtualization/virtualbox/update.sh44
-rw-r--r--pkgs/applications/window-managers/sway/wrapper.nix2
-rw-r--r--pkgs/build-support/alternatives/blas/default.nix4
-rw-r--r--pkgs/build-support/alternatives/lapack/default.nix4
-rw-r--r--pkgs/build-support/trivial-builders.nix3
-rw-r--r--pkgs/common-updater/scripts.nix4
-rwxr-xr-xpkgs/common-updater/scripts/mark-broken86
-rw-r--r--pkgs/data/fonts/twitter-color-emoji/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/find-latest-version.py50
-rw-r--r--pkgs/desktops/gnome-3/update.nix16
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/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.nix11
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix7
-rw-r--r--pkgs/development/compilers/elm/default.nix6
-rw-r--r--pkgs/development/compilers/elm/packages/elm-instrument.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.10.1.nix8
-rw-r--r--pkgs/development/compilers/ghc/8.4.4.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.6.5.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.8.1.nix236
-rw-r--r--pkgs/development/compilers/ghc/8.8.2.nix8
-rw-r--r--pkgs/development/compilers/ghc/8.8.3.nix2
-rw-r--r--pkgs/development/compilers/ispc/default.nix69
-rw-r--r--pkgs/development/compilers/scala/dotty-bare.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix30
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml116
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix2878
-rw-r--r--pkgs/development/haskell-modules/lib.nix5
-rw-r--r--pkgs/development/haskell-modules/patches/darcs-2.14.2-Compile-against-GHC-8.8.patch333
-rw-r--r--pkgs/development/haskell-modules/patches/darcs-setup.patch120
-rw-r--r--pkgs/development/interpreters/acl2/default.nix9
-rw-r--r--pkgs/development/libraries/agda/agda-stdlib/default.nix2
-rw-r--r--pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch26
-rw-r--r--pkgs/development/libraries/allegro/default.nix5
-rw-r--r--pkgs/development/libraries/aspell/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix2
-rw-r--r--pkgs/development/libraries/fmt/default.nix16
-rw-r--r--pkgs/development/libraries/gegl/4.0.nix9
-rw-r--r--pkgs/development/libraries/gegl/patches/no-simple-backend-file-test.patch10
-rw-r--r--pkgs/development/libraries/libpgf/default.nix2
-rw-r--r--pkgs/development/libraries/libslirp/default.nix8
-rw-r--r--pkgs/development/libraries/lirc/default.nix2
-rw-r--r--pkgs/development/libraries/pcg-c/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix8
-rw-r--r--pkgs/development/node-packages/node-packages-v10.nix2365
-rw-r--r--pkgs/development/python-modules/arrow/default.nix2
-rw-r--r--pkgs/development/python-modules/caldav/default.nix18
-rw-r--r--pkgs/development/python-modules/certifi/default.nix2
-rw-r--r--pkgs/development/python-modules/evernote/default.nix2
-rw-r--r--pkgs/development/python-modules/fastjsonschema/default.nix39
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix2
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix4
-rw-r--r--pkgs/development/python-modules/panel/default.nix6
-rw-r--r--pkgs/development/python-modules/param/default.nix4
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix35
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/python-constraint/default.nix29
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix11
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix34
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix51
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--pkgs/development/python-modules/retworkx/default.nix59
-rw-r--r--pkgs/development/python-modules/scikitlearn/0.20.nix2
-rw-r--r--pkgs/development/python-modules/scikitlearn/default.nix2
-rw-r--r--pkgs/development/python-modules/scipy/default.nix2
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix4
-rw-r--r--pkgs/development/python-modules/subdownloader/default.nix2
-rw-r--r--pkgs/development/python-modules/untangle/default.nix2
-rw-r--r--pkgs/development/tools/gocode/default.nix6
-rw-r--r--pkgs/development/tools/gocode/deps.nix5
-rw-r--r--pkgs/development/tools/godef/default.nix10
-rw-r--r--pkgs/development/tools/gogetdoc/default.nix12
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/gometalinter/default.nix70
-rw-r--r--pkgs/development/tools/gomodifytags/default.nix15
-rw-r--r--pkgs/development/tools/gopkgs/default.nix13
-rw-r--r--pkgs/development/tools/gopls/default.nix23
-rw-r--r--pkgs/development/tools/gotools/default.nix8
-rw-r--r--pkgs/development/tools/impl/default.nix7
-rw-r--r--pkgs/development/tools/impl/deps.nix23
-rw-r--r--pkgs/development/tools/jazzy/Gemfile.lock32
-rw-r--r--pkgs/development/tools/jazzy/gemset.nix70
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix36
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix6
-rw-r--r--pkgs/development/tools/reftools/default.nix12
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-make/Cargo.lock754
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--pkgs/development/web/remarkjs/default.nix2
-rw-r--r--pkgs/games/chocolate-doom/default.nix21
-rw-r--r--pkgs/games/enyo-doom/default.nix4
-rw-r--r--pkgs/games/pro-office-calculator/default.nix4
-rw-r--r--pkgs/misc/calaos/installer/default.nix4
-rw-r--r--pkgs/misc/emulators/firebird-emu/default.nix4
-rw-r--r--pkgs/misc/emulators/mednafen/default.nix3
-rw-r--r--pkgs/misc/emulators/yabause/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/generated.nix952
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix10
-rwxr-xr-xpkgs/misc/vim-plugins/update.py1
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json10
-rw-r--r--pkgs/os-specific/linux/kernel/hardened-patches.json38
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.5.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.6.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix13
-rwxr-xr-xpkgs/os-specific/linux/kernel/update-hardened.py151
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix18
-rw-r--r--pkgs/os-specific/linux/zenstates/default.nix54
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/nginx/stable.nix4
-rw-r--r--pkgs/servers/keycloak/default.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix4
-rw-r--r--pkgs/servers/serviio/default.nix2
-rw-r--r--pkgs/servers/sql/postgresql/default.nix2
-rw-r--r--pkgs/servers/ttyd/default.nix8
-rw-r--r--pkgs/servers/web-apps/restya-board/default.nix2
-rw-r--r--pkgs/tools/admin/lxd/default.nix4
-rw-r--r--pkgs/tools/admin/pulumi/default.nix3
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix2
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix6
-rw-r--r--pkgs/tools/backup/httrack/qt.nix4
-rw-r--r--pkgs/tools/backup/luckybackup/default.nix4
-rw-r--r--pkgs/tools/filesystems/ciopfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/darling-dmg/default.nix2
-rw-r--r--pkgs/tools/graphics/pgf/default.nix2
-rw-r--r--pkgs/tools/graphics/rocket/default.nix4
-rw-r--r--pkgs/tools/misc/bat/default.nix6
-rw-r--r--pkgs/tools/misc/colord-kde/default.nix4
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix6
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/tests.nix20
-rw-r--r--pkgs/tools/misc/powerline-go/default.nix4
-rw-r--r--pkgs/tools/misc/profile-sync-daemon/default.nix5
-rw-r--r--pkgs/tools/misc/vdirsyncer/default.nix3
-rw-r--r--pkgs/tools/misc/websocat/default.nix12
-rw-r--r--pkgs/tools/networking/babeld/default.nix4
-rw-r--r--pkgs/tools/networking/mosh/bash_completion_datadir.patch19
-rw-r--r--pkgs/tools/networking/mosh/default.nix2
-rw-r--r--pkgs/tools/networking/openvpn/default.nix13
-rw-r--r--pkgs/tools/networking/rtptools/default.nix2
-rw-r--r--pkgs/tools/networking/slimrat/default.nix33
-rw-r--r--pkgs/tools/networking/slirp4netns/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-simple-deploy/default.nix23
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--pkgs/tools/security/afl/default.nix2
-rw-r--r--pkgs/tools/security/afl/libdislocator.nix2
-rw-r--r--pkgs/tools/security/aflplusplus/default.nix138
-rw-r--r--pkgs/tools/security/aflplusplus/libdislocator.nix35
-rw-r--r--pkgs/tools/security/aflplusplus/libtokencap.nix31
-rw-r--r--pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch13
-rw-r--r--pkgs/tools/security/aflplusplus/qemu.nix77
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix6
-rw-r--r--pkgs/tools/security/p0f/default.nix2
-rw-r--r--pkgs/tools/security/pcsc-cyberjack/default.nix27
-rw-r--r--pkgs/tools/system/inxi/default.nix38
-rw-r--r--pkgs/tools/system/ytop/default.nix6
-rw-r--r--pkgs/tools/text/glogg/default.nix4
-rw-r--r--pkgs/tools/text/sd/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/bin.nix8
-rw-r--r--pkgs/tools/virtualization/cri-tools/default.nix2
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix41
-rw-r--r--pkgs/top-level/haskell-packages.nix11
-rw-r--r--pkgs/top-level/perl-packages.nix16
-rw-r--r--pkgs/top-level/python-packages.nix8
260 files changed, 12319 insertions, 5813 deletions
diff --git a/pkgs/applications/audio/clementine/default.nix b/pkgs/applications/audio/clementine/default.nix
index 4a32b099d15..15d0f92b76a 100644
--- a/pkgs/applications/audio/clementine/default.nix
+++ b/pkgs/applications/audio/clementine/default.nix
@@ -91,7 +91,7 @@ let
     '';
 
     meta = with stdenv.lib; {
-      homepage = "http://www.clementine-player.org";
+      homepage = "https://www.clementine-player.org";
       description = "A multiplatform music player";
       license = licenses.gpl3Plus;
       platforms = platforms.linux;
@@ -130,7 +130,7 @@ let
     '';
     enableParallelBuilding = true;
     meta = with stdenv.lib; {
-      homepage = "http://www.clementine-player.org";
+      homepage = "https://www.clementine-player.org";
       description = "Spotify integration for Clementine";
       # The blob itself is Apache-licensed, although libspotify is unfree.
       license = licenses.asl20;
diff --git a/pkgs/applications/audio/dfasma/default.nix b/pkgs/applications/audio/dfasma/default.nix
index 7965cbd83fd..6df4679d1d5 100644
--- a/pkgs/applications/audio/dfasma/default.nix
+++ b/pkgs/applications/audio/dfasma/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }:
+{ mkDerivation, stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, qmake }:
 
 let
 
@@ -26,7 +26,7 @@ let
     };
   };
 
-in stdenv.mkDerivation rec {
+in mkDerivation rec {
   pname = "dfasma";
   version = "1.4.5";
 
diff --git a/pkgs/applications/audio/iannix/default.nix b/pkgs/applications/audio/iannix/default.nix
index 2d4a2e9265a..fa779a7f0f4 100644
--- a/pkgs/applications/audio/iannix/default.nix
+++ b/pkgs/applications/audio/iannix/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake
+{ mkDerivation, stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake
 }:
 
-stdenv.mkDerivation {
+mkDerivation {
   pname = "iannix";
   version = "2016-01-31";
   src = fetchFromGitHub {
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
new file mode 100644
index 00000000000..0c076946b92
--- /dev/null
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -0,0 +1,56 @@
+{ cmake
+, pkg-config
+, alsaLib
+, boost
+, curl
+, fetchFromGitHub
+, ffmpeg
+, lame
+, libev
+, libmicrohttpd
+, ncurses
+, pulseaudio
+, stdenv
+, taglib
+, systemdSupport ? stdenv.isLinux, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "musikcube";
+  version = "0.90.1";
+
+  src = fetchFromGitHub {
+    owner = "clangen";
+    repo = pname;
+    rev = version;
+    sha256 = "1ff2cgbllrl2pl5zfbf0cd9qbf6hqpwr395sa1k245ar4f1rfwpg";
+  };
+
+  # https://github.com/clangen/musikcube/issues/339
+  patches = [ ./dont-strip.patch ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    alsaLib
+    boost
+    curl
+    ffmpeg
+    lame
+    libev
+    libmicrohttpd
+    ncurses
+    pulseaudio
+    taglib
+  ] ++ stdenv.lib.optional systemdSupport systemd;
+
+  meta = with stdenv.lib; {
+    description = "A fully functional terminal-based music player, library, and streaming audio server";
+    homepage = "https://musikcube.com/";
+    maintainers = [ maintainers.aanderse ];
+    license = licenses.bsd3;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/audio/musikcube/dont-strip.patch b/pkgs/applications/audio/musikcube/dont-strip.patch
new file mode 100644
index 00000000000..b7385dcddba
--- /dev/null
+++ b/pkgs/applications/audio/musikcube/dont-strip.patch
@@ -0,0 +1,14 @@
+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/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 5f9cf2720cd..d29e9e33568 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.17.1";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "Rigellute";
     repo = "spotify-tui";
     rev = "v${version}";
-    sha256 = "1gsddjinxmglm05hhphclax08d9pig1f0wjjs3bbcq096fydxgfs";
+    sha256 = "15icg332iyacdn4ydr4nivblayg4xkcnjh4f0sjnhj4q173v8fq2";
   };
 
-  cargoSha256 = "1y398ypckk3gw1sfzf97xzwf5d5z3kxlcpn3bccmsfr59kvkf661";
+  cargoSha256 = "0rw8pj74k88rvcr18837g356lwsn2vdq384yma9df462xd2cw823";
 
   nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
   buildInputs = [ openssl ]
diff --git a/pkgs/applications/audio/traverso/default.nix b/pkgs/applications/audio/traverso/default.nix
index 504e6ae9644..63ba44bec35 100644
--- a/pkgs/applications/audio/traverso/default.nix
+++ b/pkgs/applications/audio/traverso/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, cmake, pkgconfig
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig
 , alsaLib, fftw, flac, lame, libjack2, libmad, libpulseaudio
 , libsamplerate, libsndfile, libvorbis, portaudio, qtbase, wavpack
 }:
-stdenv.mkDerivation {
+mkDerivation {
   pname = "traverso";
   version = "0.49.6";
 
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 8ec53b0c66a..20f87725f99 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 = "20200114";
+  version = "20200411";
   pname = "x42-plugins";
 
   src = fetchurl {
     url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
-    sha256 = "02f8wnsl9wg7pgf4sshr0hdjfjkwln870ffgjmb01nqk37v7hiyn";
+    sha256 = "0y6778l2zc80kvp31mqw3vkcyi7g613jxn3g3lxqfa31i617gh6j";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     patchShebangs ./stepseq.lv2/gridgen.sh
-    patchShebangs ./matrixmixer.lv2/genttl.sh #TODO: remove at next update, see https://github.com/x42/matrixmixer.lv2/issues/2
-    patchShebangs ./matrixmixer.lv2/genhead.sh #TODO: remove at next update, see https://github.com/x42/matrixmixer.lv2/issues/2
+    patchShebangs ./matrixmixer.lv2/genttl.sh
+    patchShebangs ./matrixmixer.lv2/genhead.sh
     sed -i 's|/usr/include/zita-convolver.h|${zita-convolver}/include/zita-convolver.h|g' ./convoLV2/Makefile
   '';
 
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
index 5c9456b76a6..f5c77bd09fd 100644
--- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -164,12 +164,120 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
 
         ivy-rtags = fix-rtags super.ivy-rtags;
 
+        mandoku = super.mandoku.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         magit = super.magit.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
             (attrs.nativeBuildInputs or []) ++ [ external.git ];
         });
 
+        magit-circleci = super.magit-circleci.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (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 ];
+        });
+
+        magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-imerge = super.magit-imerge.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-lfs = super.magit-lfs.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (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 ];
+        });
+
+        magit-p4 = super.magit-p4.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-rbr = super.magit-rbr.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-stgit = super.magit-stgit.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-topgit = super.magit-topgit.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
+        magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         magit-annex = super.magit-annex.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
@@ -206,12 +314,24 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
             (attrs.nativeBuildInputs or []) ++ [ external.git ];
         });
 
+        kapacitor = super.kapacitor.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         kubernetes = super.kubernetes.overrideAttrs (attrs: {
           # searches for Git at build time
           nativeBuildInputs =
             (attrs.nativeBuildInputs or []) ++ [ external.git ];
         });
 
+        kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: {
+          # searches for Git at build time
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        });
+
         # upstream issue: missing file header
         mhc = super.mhc.override {
           inherit (self.melpaPackages) calfw;
diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix
index 1397ea2d586..82aa38c1449 100644
--- a/pkgs/applications/editors/mindforger/default.nix
+++ b/pkgs/applications/editors/mindforger/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, qmake, qtbase, qtwebkit }:
+{ mkDerivation, stdenv, fetchurl, qmake, qtbase, qtwebkit }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "mindforger";
   version = "1.48.2";
 
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index fa63ee90adc..b9d92409198 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig
+{ mkDerivation, stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig
 , kinit, karchive, kcrash, kcmutils, kconfigwidgets, knewstuff, kparts
 , qca-qt5, shared-mime-info }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "okteta";
   version = "0.26.3";
 
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
index bd183f97c12..583229eb868 100644
--- a/pkgs/applications/editors/typora/default.nix
+++ b/pkgs/applications/editors/typora/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
     description = "A minimal Markdown reading & writing app";
     homepage = "https://typora.io";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jensbin worldofpeace ];
+    maintainers = with maintainers; [ jensbin ];
     platforms = [ "x86_64-linux"];
   };
 }
diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix
index c02140e1905..4d79f10a9e1 100644
--- a/pkgs/applications/graphics/awesomebump/default.nix
+++ b/pkgs/applications/graphics/awesomebump/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, qtbase, qmake, makeWrapper, qtscript, flex, bison, qtdeclarative }:
+{ mkDerivation, lib, fetchgit, qtbase, qmake, qtscript, flex, bison, qtdeclarative }:
 
 
 let
@@ -11,7 +11,7 @@ let
     fetchSubmodules = true;
   };
 
-  qtnproperty = stdenv.mkDerivation {
+  qtnproperty = mkDerivation {
     name = "qtnproperty";
     inherit src;
     sourceRoot = "AwesomeBump/Sources/utils/QtnProperty";
@@ -22,7 +22,7 @@ let
       install -D bin-linux/QtnPEG $out/bin/QtnPEG
     '';
   };
-in stdenv.mkDerivation {
+in mkDerivation {
   pname = "awesomebump";
   inherit version;
 
@@ -30,12 +30,13 @@ in stdenv.mkDerivation {
 
   buildInputs = [ qtbase qtscript qtdeclarative ];
 
-  nativeBuildInputs = [ qmake makeWrapper ];
+  nativeBuildInputs = [ qmake ];
 
   preBuild = ''
     ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG
   '';
 
+  dontWrapQtApps = true;
   postInstall = ''
     d=$out/libexec/AwesomeBump
 
@@ -44,7 +45,7 @@ in stdenv.mkDerivation {
     cp -prd Bin/Configs Bin/Core $d/
 
     # AwesomeBump expects to find Core and Configs in its current directory.
-    makeWrapper $d/AwesomeBump $out/bin/AwesomeBump \
+    makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \
         --run "cd $d"
   '';
 
diff --git a/pkgs/applications/graphics/phototonic/default.nix b/pkgs/applications/graphics/phototonic/default.nix
index 1c6c1b43354..7020bf6c83e 100644
--- a/pkgs/applications/graphics/phototonic/default.nix
+++ b/pkgs/applications/graphics/phototonic/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }:
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "phototonic";
   version = "2.1";
 
diff --git a/pkgs/applications/graphics/qcomicbook/default.nix b/pkgs/applications/graphics/qcomicbook/default.nix
index 4f7e5b931f4..f9dc494b4b3 100644
--- a/pkgs/applications/graphics/qcomicbook/default.nix
+++ b/pkgs/applications/graphics/qcomicbook/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }:
+{ mkDerivation, stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "qcomicbook";
   version = "0.9.1";
 
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index b1bfbe3c4cf..31fc4045026 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }:
+{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }:
 let
   # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
   # license: Free for commercial use
@@ -7,7 +7,7 @@ let
     sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8";
   };
 in
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "write_stylus";
   version = "209";
 
diff --git a/pkgs/applications/misc/bibletime/default.nix b/pkgs/applications/misc/bibletime/default.nix
index 9489bfa0016..cfac79bef4b 100644
--- a/pkgs/applications/misc/bibletime/default.nix
+++ b/pkgs/applications/misc/bibletime/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, cmake, pkgconfig, sword, boost, clucene_core
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig, sword, boost, clucene_core
 , qtbase, qttools, qtsvg, qtwebkit
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
 
   version = "2.11.2";
 
diff --git a/pkgs/applications/misc/candle/default.nix b/pkgs/applications/misc/candle/default.nix
index a951046ce01..842ef2262d9 100644
--- a/pkgs/applications/misc/candle/default.nix
+++ b/pkgs/applications/misc/candle/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }:
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qtserialport, qmake }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "candle";
   version = "1.1";
 
diff --git a/pkgs/applications/misc/fitnesstrax/default.nix b/pkgs/applications/misc/fitnesstrax/default.nix
new file mode 100644
index 00000000000..f0081c39102
--- /dev/null
+++ b/pkgs/applications/misc/fitnesstrax/default.nix
@@ -0,0 +1,43 @@
+{ fetchFromGitHub
+, glib
+, gtk3
+, lib
+, rustPlatform
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fitnesstrax";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "luminescent-dreams";
+    repo = "fitnesstrax";
+    rev = "${pname}-${version}";
+    sha256 = "1k6zhnbs0ggx7q0ig2abcnzprsgrychlpvsh6d36dw6mr8zpfkp7";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+  ];
+
+  cargoSha256 = "1xgyyxd2kz21xan0pk7rbxiym90s7m2qrzg2ddilcszva60bxdd9";
+
+  postInstall = ''
+    mkdir -p $out/share/glib-2.0/schemas
+    cp -r $src/share/* $out/share/
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  meta = with lib; {
+    description = "Privacy-first fitness tracking";
+    homepage = "https://github.com/luminescent-dreams/fitnesstrax";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ savannidgerinel ];
+  };
+}
diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index ae9576e6cbc..323fc501c84 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -41,6 +41,13 @@ with python3.pkgs; buildPythonApplication rec {
   checkInputs = [ pytest glibcLocales ];
   LC_ALL = "en_US.UTF-8";
 
+  postPatch = ''
+    sed -i \
+      -e "s/Invalid value for \"ics\"/Invalid value for \\\'ics\\\'/" \
+      -e "s/Invalid value for \"\[ICS\]\"/Invalid value for \\\'\[ICS\]\\\'/" \
+      tests/cli_test.py
+  '';
+
   postInstall = ''
     # zsh completion
     install -D misc/__khal $out/share/zsh/site-functions/__khal
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix
index d1682227920..90dd04c9d68 100644
--- a/pkgs/applications/misc/kitty/default.nix
+++ b/pkgs/applications/misc/kitty/default.nix
@@ -20,14 +20,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.17.2";
+  version = "0.17.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "0xiwz89ynhh8aj0c9jbqfsxf129hnzs0gz4bzcparnjisq2sh3cq";
+    sha256 = "1nx8gjavq8kc656ayh3wign1f68b46jbnmy8zyks25wg0p9gid8l";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/lutris/default.nix b/pkgs/applications/misc/lutris/default.nix
index 297596b8e39..2ff2a82dd4f 100644
--- a/pkgs/applications/misc/lutris/default.nix
+++ b/pkgs/applications/misc/lutris/default.nix
@@ -1,5 +1,5 @@
 { buildPythonApplication, lib, fetchFromGitHub, fetchpatch
-, wrapGAppsHook, gobject-introspection, gnome-desktop, libnotify, libgnome-keyring, pango
+, 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
@@ -40,8 +40,9 @@ in buildPythonApplication rec {
     sha256 = "1g093g0difnkjmnm91p20issdsxn9ri4c56zzddj5wfrbmhwdfag";
   };
 
+  nativeBuildInputs = [ wrapGAppsHook ];
   buildInputs = [
-    wrapGAppsHook gobject-introspection gnome-desktop libnotify libgnome-keyring pango
+    gobject-introspection glib-networking gnome-desktop libnotify libgnome-keyring pango
     gdk-pixbuf atk webkitgtk
   ] ++ gstDeps;
 
diff --git a/pkgs/applications/misc/openbrf/default.nix b/pkgs/applications/misc/openbrf/default.nix
index 6140343fae7..8e990b6dffb 100644
--- a/pkgs/applications/misc/openbrf/default.nix
+++ b/pkgs/applications/misc/openbrf/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }:
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU, libGL }:
 
 
-stdenv.mkDerivation {
+mkDerivation {
   name = "openbrf-unstable-2016-01-09";
 
   src = fetchFromGitHub {
diff --git a/pkgs/applications/misc/qt-box-editor/default.nix b/pkgs/applications/misc/qt-box-editor/default.nix
index c65e5377eb3..852f0d30f9a 100644
--- a/pkgs/applications/misc/qt-box-editor/default.nix
+++ b/pkgs/applications/misc/qt-box-editor/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ mkDerivation
+, stdenv
 , fetchFromGitHub
 , qtbase
 , qtsvg
@@ -7,7 +8,7 @@
 , tesseract
 }:
 
-stdenv.mkDerivation {
+mkDerivation {
   pname = "qt-box-editor";
   version = "unstable-2019-07-12";
 
diff --git a/pkgs/applications/misc/valentina/default.nix b/pkgs/applications/misc/valentina/default.nix
index 6a1dd06de32..e9e8cfed796 100644
--- a/pkgs/applications/misc/valentina/default.nix
+++ b/pkgs/applications/misc/valentina/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchhg
+{ mkDerivation, stdenv, fetchhg
 , qmake, qttools
 , qtbase, qtsvg, qtxmlpatterns
 , poppler_utils
@@ -6,7 +6,7 @@
 
 with stdenv.lib;
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "valentina";
   version = "0.6.1";
 
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
new file mode 100644
index 00000000000..87248013a9a
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
@@ -0,0 +1,94 @@
+{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
+
+with stdenv.lib;
+
+mkChromiumDerivation (base: rec {
+  name = "chromium-browser";
+  packageName = "chromium";
+  buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
+
+  outputs = ["out" "sandbox"];
+
+  sandboxExecutableName = "__chromium-suid-sandbox";
+
+  installPhase = ''
+    mkdir -p "$libExecPath"
+    cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
+    cp -v "$buildPath/icudtl.dat" "$libExecPath/"
+    cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
+    cp -v "$buildPath/chrome" "$libExecPath/$packageName"
+
+    # Swiftshader
+    # See https://stackoverflow.com/a/4264351/263061 for the find invocation.
+    if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then
+      echo "Swiftshader files found; installing"
+      mkdir -p "$libExecPath/swiftshader"
+      cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/"
+    else
+      echo "Swiftshader files not found"
+    fi
+
+    mkdir -p "$sandbox/bin"
+    cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
+
+    mkdir -vp "$out/share/man/man1"
+    cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
+
+    for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
+      num_and_suffix="''${icon_file##*logo_}"
+      icon_size="''${num_and_suffix%.*}"
+      expr "$icon_size" : "^[0-9][0-9]*$" || continue
+      logo_output_prefix="$out/share/icons/hicolor"
+      logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+      mkdir -vp "$logo_output_path"
+      cp -v "$icon_file" "$logo_output_path/$packageName.png"
+    done
+
+    # Install Desktop Entry
+    install -D chrome/installer/linux/common/desktop.template \
+      $out/share/applications/chromium-browser.desktop
+
+    substituteInPlace $out/share/applications/chromium-browser.desktop \
+      --replace "@@MENUNAME@@" "Chromium" \
+      --replace "@@PACKAGE@@" "chromium" \
+      --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium"
+
+    # Append more mime types to the end
+    sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \
+      $out/share/applications/chromium-browser.desktop
+
+    # See https://github.com/NixOS/nixpkgs/issues/12433
+    sed -i \
+      -e '/\[Desktop Entry\]/a\' \
+      -e 'StartupWMClass=chromium-browser' \
+      $out/share/applications/chromium-browser.desktop
+  '';
+
+  passthru = { inherit sandboxExecutableName; };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = {
+    description = "An open source web browser from Google, with dependencies on Google web services removed";
+    longDescription = ''
+      Chromium is an open source web browser from Google that aims to build a
+      safer, faster, and more stable way for all Internet users to experience
+      the web. It has a minimalist user interface and provides the vast majority
+      of source code for Google Chrome (which has some additional features).
+    '';
+    homepage = https://github.com/Eloston/ungoogled-chromium;
+    maintainers = with maintainers; [ squalus ];
+    # Overview of the maintainer roles:
+    # nixos-unstable:
+    # - TODO: Need a new maintainer for x86_64 [0]
+    # - @thefloweringash: aarch64
+    # - @primeos: Provisional maintainer (x86_64)
+    # Stable channel:
+    # - TODO (need someone to test backports [0])
+    # [0]: https://github.com/NixOS/nixpkgs/issues/78450
+    license = if enableWideVine then licenses.unfree else licenses.bsd3;
+    platforms = platforms.linux;
+    hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+    timeout = 172800; # 48 hours
+  };
+})
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
new file mode 100644
index 00000000000..d07da2b3b07
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -0,0 +1,361 @@
+{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+
+# default dependencies
+, bzip2, flac, speex, libopus
+, libevent, expat, libjpeg, snappy
+, libpng, libcap
+, xdg_utils, yasm, minizip, libwebp
+, libusb1, pciutils, nss, re2, zlib
+
+, python2Packages, perl, pkgconfig
+, nspr, systemd, kerberos
+, utillinux, alsaLib
+, bison, gperf
+, glib, gtk3, dbus-glib
+, glibc
+, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
+, protobuf, speechd, libXdamage, cups
+, ffmpeg, libxslt, libxml2, at-spi2-core
+, jre
+
+# optional dependencies
+, libgcrypt ? null # gnomeSupport || cupsSupport
+, libva ? null # useVaapi
+, libdrm ? null, wayland ? null, mesa_drivers ? null, libxkbcommon ? null # useOzone
+
+# package customization
+, useVaapi ? false
+, useOzone ? false
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
+, proprietaryCodecs ? true
+, cupsSupport ? true
+, pulseSupport ? false, libpulseaudio ? null
+, ungoogled-chromium
+, ungoogled ? false
+
+, upstream-info
+}:
+
+buildFun:
+
+with stdenv.lib;
+
+# see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html
+
+let
+  # The additional attributes for creating derivations based on the chromium
+  # source tree.
+  extraAttrs = buildFun base;
+
+  githubPatch = commit: sha256: fetchpatch {
+    url = "https://github.com/chromium/chromium/commit/${commit}.patch";
+    inherit sha256;
+  };
+
+  mkGnFlags =
+    let
+      # Serialize Nix types into GN types according to this document:
+      # https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/language.md
+      mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\"";
+      sanitize = value:
+        if value == true then "true"
+        else if value == false then "false"
+        else if isList value then "[${concatMapStringsSep ", " sanitize value}]"
+        else if isInt value then toString value
+        else if isString value then mkGnString value
+        else throw "Unsupported type for GN value `${value}'.";
+      toFlag = key: value: "${key}=${sanitize value}";
+    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+
+  gnSystemLibraries = [
+    "flac" "libwebp" "libxslt" "yasm" "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
+    # "ffmpeg" # https://crbug.com/731766
+    # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
+                    # so we can't build with one from system and other from source
+  ];
+
+  opusWithCustomModes = libopus.override {
+    withCustomModes = true;
+  };
+
+  defaultDependencies = [
+    bzip2 flac speex opusWithCustomModes
+    libevent expat libjpeg snappy
+    libpng libcap
+    xdg_utils yasm minizip libwebp
+    libusb1 re2 zlib
+    ffmpeg libxslt libxml2
+    # 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
+  ];
+
+  # build paths and release info
+  packageName = extraAttrs.packageName or extraAttrs.name;
+  buildType = "Release";
+  buildPath = "out/${buildType}";
+  libExecPath = "$out/libexec/${packageName}";
+
+  versionRange = min-version: upto-version:
+    let inherit (upstream-info) version;
+        result = versionAtLeast version min-version && versionOlder version upto-version;
+        stable-version = (import ./upstream-info.nix).stable.version;
+    in if versionAtLeast stable-version upto-version
+       then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
+            result
+       else result;
+
+  ungoogler =
+    let versionEntry = (import ./ungoogled-src.nix)."${upstream-info.version}";
+    in ungoogled-chromium {
+      inherit (versionEntry) rev sha256;
+    };
+  base = rec {
+    name = "${packageName}-unwrapped-${version}";
+    inherit (upstream-info) channel version;
+    inherit packageName buildType buildPath;
+
+    src = upstream-info.main;
+
+    nativeBuildInputs = [
+      ninja which python2Packages.python perl pkgconfig
+      python2Packages.ply python2Packages.jinja2 nodejs
+      gnutar
+    ] ++ optional (versionAtLeast version "83") python2Packages.setuptools;
+
+    buildInputs = defaultDependencies ++ [
+      nspr nss systemd
+      utillinux alsaLib
+      bison gperf kerberos
+      glib gtk3 dbus-glib
+      libXScrnSaver libXcursor libXtst libGLU libGL
+      pciutils protobuf speechd libXdamage at-spi2-core
+      jre
+    ] ++ optional gnomeKeyringSupport libgnome-keyring3
+      ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+      ++ optionals cupsSupport [ libgcrypt cups ]
+      ++ optional useVaapi libva
+      ++ optional pulseSupport libpulseaudio
+      ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
+
+    patches = [
+      ./patches/nix_plugin_paths_68.patch
+      ./patches/remove-webp-include-69.patch
+      ./patches/no-build-timestamps.patch
+      ./patches/widevine-79.patch
+      ./patches/dont-use-ANGLE-by-default.patch
+      # Unfortunately, chromium regularly breaks on major updates and
+      # then needs various patches backported in order to be compiled with GCC.
+      # Good sources for such patches and other hints:
+      # - https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/
+      # - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium
+      # - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits
+      #
+      # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
+      # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
+    ] ++ optionals (useVaapi) ([
+      # source: https://aur.archlinux.org/cgit/aur.git/tree/vaapi-fix.patch?h=chromium-vaapi
+      ./patches/vaapi-fix.patch
+    ] ++ 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
+      substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
+        --replace \
+          'return sandbox_binary;' \
+          'return base::FilePath(GetDevelSandboxPath());'
+
+      substituteInPlace services/audio/audio_sandbox_hook_linux.cc \
+        --replace \
+          '/usr/share/alsa/' \
+          '${alsaLib}/share/alsa/' \
+        --replace \
+          '/usr/lib/x86_64-linux-gnu/gconv/' \
+          '${glibc}/lib/gconv/' \
+        --replace \
+          '/usr/share/locale/' \
+          '${glibc}/share/locale/'
+
+      sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
+        chrome/browser/shell_integration_linux.cc
+
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+        device/udev_linux/udev?_loader.cc
+
+      sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
+        gpu/config/gpu_info_collector_linux.cc
+
+      sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \
+        chrome/browser/ui/webui/engagement/site_engagement_ui.cc
+
+      sed -i -e '/#include/ {
+        i #include <algorithm>
+        :l; n; bl
+      }' gpu/config/gpu_control_list.cc
+
+      # Allow to put extensions into the system-path.
+      sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
+
+      patchShebangs .
+      # use our own nodejs
+      mkdir -p third_party/node/linux/node-linux-x64/bin
+      ln -s $(which node) third_party/node/linux/node-linux-x64/bin/node
+
+      # remove unused third-party
+      # in third_party/crashpad third_party/zlib contains just a header-adapter
+      for lib in ${toString gnSystemLibraries}; do
+        find -type f -path "*third_party/$lib/*"     \
+            \! -path "*third_party/crashpad/crashpad/third_party/zlib/*"  \
+            \! -path "*third_party/$lib/chromium/*"  \
+            \! -path "*third_party/$lib/google/*"    \
+            \! -path "*base/third_party/icu/*"       \
+            \! -path "*base/third_party/libevent/*"  \
+            \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+            -delete
+      done
+    '' + optionalString stdenv.isAarch64 ''
+      substituteInPlace build/toolchain/linux/BUILD.gn \
+        --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+    '' + optionalString stdenv.cc.isClang ''
+      mkdir -p third_party/llvm-build/Release+Asserts/bin
+      ln -s ${stdenv.cc}/bin/clang              third_party/llvm-build/Release+Asserts/bin/clang
+      ln -s ${stdenv.cc}/bin/clang++            third_party/llvm-build/Release+Asserts/bin/clang++
+      ln -s ${llvmPackages.llvm}/bin/llvm-ar    third_party/llvm-build/Release+Asserts/bin/llvm-ar
+    '' + optionalString ungoogled ''
+      ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors"
+      ${ungoogler}/utils/patches.py . ${ungoogler}/patches
+      ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz .
+    '';
+
+    gnFlags = mkGnFlags ({
+      linux_use_bundled_binutils = false;
+      use_lld = false;
+      use_gold = true;
+      gold_path = "${stdenv.cc}/bin";
+      is_debug = false;
+
+      proprietary_codecs = false;
+      use_sysroot = false;
+      use_gnome_keyring = gnomeKeyringSupport;
+      use_gio = gnomeSupport;
+      # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy',
+      # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it
+      enable_nacl = false;
+      # Enabling the Widevine component here doesn't affect whether we can
+      # redistribute the chromium package; the Widevine component is either
+      # added later in the wrapped -wv build or downloaded from Google.
+      enable_widevine = true;
+      use_cups = cupsSupport;
+
+      treat_warnings_as_errors = false;
+      is_clang = stdenv.cc.isClang;
+      clang_use_chrome_plugins = false;
+      blink_symbol_level = 0;
+      fieldtrial_testing_like_official_build = true;
+
+      # Google API keys, see:
+      #   http://www.chromium.org/developers/how-tos/api-keys
+      # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
+      # please get your own set of keys.
+      google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
+      google_default_client_id = "404761575300.apps.googleusercontent.com";
+      google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
+    } // optionalAttrs proprietaryCodecs {
+      # enable support for the H.264 codec
+      proprietary_codecs = true;
+      enable_hangout_services_extension = true;
+      ffmpeg_branding = "Chrome";
+    } // optionalAttrs useVaapi {
+      use_vaapi = true;
+    } // optionalAttrs pulseSupport {
+      use_pulseaudio = true;
+      link_pulseaudio = true;
+    } // optionalAttrs useOzone {
+      use_ozone = true;
+      ozone_platform_gbm = false;
+      use_xkbcommon = true;
+      use_glib = true;
+      use_gtk = true;
+      use_system_libwayland = true;
+      use_system_minigbm = true;
+      use_system_libdrm = true;
+      system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
+    } // optionalAttrs ungoogled {
+      closure_compile = false;
+      enable_hangout_services_extension = false;
+      enable_mdns = false;
+      enable_nacl_nonsfi = false;
+      enable_one_click_signin = false;
+      enable_reading_list = false;
+      enable_remoting = false;
+      enable_reporting = false;
+      enable_service_discovery = false;
+      exclude_unwind_tables = true;
+      google_api_key = "";
+      google_default_client_id = "";
+      google_default_client_secret = "";
+      optimize_webui = false;
+      safe_browsing_mode = 0;
+      use_official_google_api_keys = false;
+      use_unofficial_version_number = false;
+    } // (extraAttrs.gnFlags or {}));
+
+    configurePhase = ''
+      runHook preConfigure
+
+      # This is to ensure expansion of $out.
+      libExecPath="${libExecPath}"
+      python build/linux/unbundle/replace_gn_files.py \
+        --system-libraries ${toString gnSystemLibraries}
+      ${gnChromium}/bin/gn gen --args=${escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt
+
+      # Fail if `gn gen` contains a WARNING.
+      grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1
+
+      runHook postConfigure
+    '';
+
+    # Don't spam warnings about unknown warning options. This is useful because
+    # our Clang is always older than Chromium's and the build logs have a size
+    # of approx. 25 MB without this option (and this saves e.g. 66 %).
+    NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
+
+    buildPhase = let
+      # Build paralelism: on Hydra the build was frequently running into memory
+      # exhaustion, and even other users might be running into similar issues.
+      # -j is halved to avoid memory problems, and -l is slightly increased
+      # so that the build gets slight preference before others
+      # (it will often be on "critical path" and at risk of timing out)
+      buildCommand = target: ''
+        ninja -C "${buildPath}"  \
+          -j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \
+          "${target}"
+        (
+          source chrome/installer/linux/common/installer.include
+          PACKAGE=$packageName
+          MENUNAME="Chromium"
+          process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1"
+        )
+      '';
+      targets = extraAttrs.buildTargets or [];
+      commands = map buildCommand targets;
+    in concatStringsSep "\n" commands;
+
+    postFixup = ''
+      # Make sure that libGLESv2 is found by dlopen (if using EGL).
+      chromiumBinary="$libExecPath/$packageName"
+      origRpath="$(patchelf --print-rpath "$chromiumBinary")"
+      patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
+    '';
+  };
+
+# Remove some extraAttrs we supplied to the base attributes already.
+in stdenv.mkDerivation (base // removeAttrs extraAttrs [
+  "name" "gnFlags" "buildTargets"
+])
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
new file mode 100644
index 00000000000..f172e7c09ce
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
@@ -0,0 +1,205 @@
+{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
+, makeWrapper, ed
+, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
+, libva ? null
+, gcc, nspr, nss, patchelfUnstable, runCommand
+, lib
+
+# package customization
+, channel ? "stable"
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false
+, proprietaryCodecs ? true
+, enablePepperFlash ? false
+, enableWideVine ? false
+, ungoogled ? true
+, useVaapi ? false # test video on radeon, before enabling this
+, useOzone ? false
+, cupsSupport ? true
+, pulseSupport ? config.pulseaudio or stdenv.isLinux
+, commandLineArgs ? ""
+}:
+
+let
+  llvmPackages = if channel == "dev"
+    then llvmPackages_10
+    else llvmPackages_9;
+  stdenv = llvmPackages.stdenv;
+
+  callPackage = newScope chromium;
+
+  chromium = {
+    inherit stdenv llvmPackages;
+
+    upstream-info = (callPackage ./update.nix {}).getChannel channel;
+
+    mkChromiumDerivation = callPackage ./common.nix ({
+      inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useVaapi useOzone ungoogled;
+      gnChromium = gn;
+    } // lib.optionalAttrs (channel == "dev") {
+      # TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-03-23";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9";
+          sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
+        };
+      });
+    });
+
+    browser = callPackage ./browser.nix { inherit channel enableWideVine; };
+
+    plugins = callPackage ./plugins.nix {
+      inherit enablePepperFlash;
+    };
+
+    ungoogled-chromium = callPackage ./ungoogled.nix {};
+  };
+
+  mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
+  widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
+    name = "chrome-widevine-cdm";
+
+    # The .deb file for Google Chrome
+    src = upstream-info.binary;
+
+    nativeBuildInputs = [ patchelfUnstable ];
+
+    phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
+
+    unpackCmd = let
+      widevineCdmPath =
+        if upstream-info.channel == "stable" then
+          "./opt/google/chrome/WidevineCdm"
+        else if upstream-info.channel == "beta" then
+          "./opt/google/chrome-beta/WidevineCdm"
+        else if upstream-info.channel == "dev" then
+          "./opt/google/chrome-unstable/WidevineCdm"
+        else
+          throw "Unknown chromium channel.";
+    in ''
+      # Extract just WidevineCdm from upstream's .deb file
+      ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}"
+
+      # Move things around so that we don't have to reference a particular
+      # chrome-* directory later.
+      mv "${widevineCdmPath}" ./
+
+      # unpackCmd wants a single output directory; let it take WidevineCdm/
+      rm -rf opt
+    '';
+
+    doCheck = true;
+    checkPhase = ''
+      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+    '';
+
+    PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
+
+    patchPhase = ''
+      patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so
+    '';
+
+    installPhase = ''
+      mkdir -p $out/WidevineCdm
+      cp -a * $out/WidevineCdm/
+    '';
+
+    meta = {
+      platforms = [ "x86_64-linux" ];
+      license = lib.licenses.unfree;
+    };
+  };
+
+  suffix = if channel != "stable" then "-" + channel else "";
+
+  sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
+
+  version = chromium.browser.version;
+
+  # We want users to be able to enableWideVine without rebuilding all of
+  # chromium, so we have a separate derivation here that copies chromium
+  # and adds the unfree WidevineCdm.
+  chromiumWV = let browser = chromium.browser; in if enableWideVine then
+    runCommand (browser.name + "-wv") { version = browser.version; }
+      ''
+        mkdir -p $out
+        cp -a ${browser}/* $out/
+        chmod u+w $out/libexec/chromium
+        cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/
+      ''
+    else browser;
+in stdenv.mkDerivation {
+  name = "chromium${suffix}-${version}";
+  inherit version;
+
+  buildInputs = [
+    makeWrapper ed
+
+    # needed for GSETTINGS_SCHEMAS_PATH
+    gsettings-desktop-schemas glib gtk3
+
+    # needed for XDG_ICON_DIRS
+    gnome3.adwaita-icon-theme
+  ];
+
+  outputs = ["out" "sandbox"];
+
+  buildCommand = let
+    browserBinary = "${chromiumWV}/libexec/chromium/chromium";
+    getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
+    libPath = stdenv.lib.makeLibraryPath ([]
+      ++ stdenv.lib.optional useVaapi libva
+    );
+
+  in with stdenv.lib; ''
+    mkdir -p "$out/bin"
+
+    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
+      ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
+
+    ed -v -s "$out/bin/chromium" << EOF
+    2i
+
+    if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ]
+    then
+      export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}"
+    else
+      export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
+    fi
+
+  '' + lib.optionalString (libPath != "") ''
+    # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
+    # contain an empty section before or after a colon.
+    export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}"
+  '' + ''
+
+    # libredirect causes chromium to deadlock on startup
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+
+    export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
+
+    .
+    w
+    EOF
+
+    ln -sv "${chromium.browser.sandbox}" "$sandbox"
+
+    ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
+
+    mkdir -p "$out/share"
+    for f in '${chromium.browser}'/share/*; do # hello emacs */
+      ln -s -t "$out/share/" "$f"
+    done
+  '';
+
+  inherit (chromium.browser) packageName;
+  meta = chromium.browser.meta;
+  passthru = {
+    inherit (chromium) upstream-info browser;
+    mkDerivation = chromium.mkChromiumDerivation;
+    inherit sandboxExecutableName;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch
new file mode 100644
index 00000000000..9f14a304eb3
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/dont-use-ANGLE-by-default.patch
@@ -0,0 +1,26 @@
+A field trial currently enables the passthrough command decoder, which causes
+gl_factory.cc to try kGLImplementationEGLANGLE first, which causes Chromium to fail
+to load libGLESv2.so on NixOS.  It somehow does not try kGLImplementationDesktopGL,
+and so there is no GL support at all.
+
+Revert to using the validating command decoder, which prevents gl_factory.cc
+from touching allowed_impls, allowing it to successfully use kGLImplementationDesktopGL.
+
+diff --git a/ui/gl/gl_utils.cc b/ui/gl/gl_utils.cc
+index 697cbed5fe2d..8419bdb21a2f 100644
+--- a/ui/gl/gl_utils.cc
++++ b/ui/gl/gl_utils.cc
+@@ -71,9 +71,10 @@ bool UsePassthroughCommandDecoder(const base::CommandLine* command_line) {
+   } else if (switch_value == kCmdDecoderValidatingName) {
+     return false;
+   } else {
+-    // Unrecognized or missing switch, use the default.
+-    return base::FeatureList::IsEnabled(
+-        features::kDefaultPassthroughCommandDecoder);
++    // Ignore the field trial that enables it; disable it until
++    // gl_factory.cc kGLImplementationEGLANGLE issues are sorted
++    // out on NixOS.
++    return false;
+   }
+ }
+ }
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch
new file mode 100644
index 00000000000..da6a4c92b46
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/nix_plugin_paths_68.patch
@@ -0,0 +1,61 @@
+diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
+index f4e119d..d9775bd 100644
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath>
+     g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
+ 
+ // Gets the path for internal plugins.
+-bool GetInternalPluginsDirectory(base::FilePath* result) {
+-#if defined(OS_MACOSX)
+-  // If called from Chrome, get internal plugins from a subdirectory of the
+-  // framework.
+-  if (base::mac::AmIBundled()) {
+-    *result = chrome::GetFrameworkBundlePath();
+-    DCHECK(!result->empty());
+-    *result = result->Append("Internet Plug-Ins");
+-    return true;
+-  }
+-  // In tests, just look in the module directory (below).
+-#endif
+-
+-  // The rest of the world expects plugins in the module directory.
+-  return base::PathService::Get(base::DIR_MODULE, result);
++bool GetInternalPluginsDirectory(base::FilePath* result,
++                                 const std::string& ident) {
++  std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident;
++  const char* value = getenv(full_env.c_str());
++  if (value == NULL)
++      return base::PathService::Get(base::DIR_MODULE, result);
++  else
++      *result = base::FilePath(value);
+ }
+ 
+ // Gets the path for bundled implementations of components. Note that these
+@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) {
+       create_dir = true;
+       break;
+     case chrome::DIR_INTERNAL_PLUGINS:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "ALL"))
+         return false;
+       break;
+     case chrome::DIR_COMPONENTS:
+@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) {
+         return false;
+       break;
+     case chrome::DIR_PEPPER_FLASH_PLUGIN:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
+         return false;
+       cur = cur.Append(kPepperFlashBaseDirectory);
+       break;
+@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) {
+         cur = cur.DirName();
+       }
+ #else
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PNACL"))
+         return false;
+ #endif
+       cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
new file mode 100644
index 00000000000..6b788f43d29
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
@@ -0,0 +1,17 @@
+--- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig	2018-11-02 16:00:34.368933077 +0200
++++ chromium-70.0.3538.67/build/compute_build_timestamp.py	2018-11-08 04:06:21.658105129 +0200
+@@ -94,6 +94,14 @@
+       'build_type', help='The type of build', choices=('official', 'default'))
+   args = argument_parser.parse_args()
+ 
++  # I don't trust LASTCHANGE magic, and I definelly want something deterministic here
++  SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None)
++  if SOURCE_DATE_EPOCH is not None:
++    print(SOURCE_DATE_EPOCH)
++    return 0
++  else:
++    raise RuntimeError("SOURCE_DATE_EPOCH not set")
++
+   # The mtime of the revision in build/util/LASTCHANGE is stored in a file
+   # next to it. Read it, to get a deterministic time close to "now".
+   # That date is then modified as described at the top of the file so that
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch
new file mode 100644
index 00000000000..07572cf7ee9
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/remove-webp-include-69.patch
@@ -0,0 +1,11 @@
+--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
+@@ -13,7 +13,7 @@
+
+ #include "jpeglib.h"  // for JPEG_MAX_DIMENSION
+
+-#include "third_party/libwebp/src/webp/encode.h"  // for WEBP_MAX_DIMENSION
++#define WEBP_MAX_DIMENSION 16383
+
+ namespace blink {
+
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/vaapi-fix.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/vaapi-fix.patch
new file mode 100644
index 00000000000..b5372d1a255
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/vaapi-fix.patch
@@ -0,0 +1,74 @@
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -641,6 +641,7 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+   // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
+   // internal decoded frame.
+   if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
++      buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
+       !vpp_vaapi_wrapper_) {
+     vpp_vaapi_wrapper_ = VaapiWrapper::Create(
+         VaapiWrapper::kVideoProcess, VAProfileNone,
+@@ -665,7 +666,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers(
+     PictureBuffer buffer = buffers[i];
+     buffer.set_size(requested_pic_size_);
+     std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
+-        (buffer_allocation_mode_ == BufferAllocationMode::kNone)
++        ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
++         (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
+             ? vaapi_wrapper_
+             : vpp_vaapi_wrapper_,
+         make_context_current_cb_, bind_image_cb_, buffer);
+@@ -1093,6 +1095,12 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++  // NVIDIA blobs use VDPAU
++  if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
++    LOG(INFO) << "VA-API driver on VDPAU backend";
++    return BufferAllocationMode::kWrapVdpau;
++  }
++
+   // 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
+     // Using |client_|s provided PictureBuffers and as many internally
+     // allocated.
+     kNormal,
++    kWrapVdpau,
+   };
+
+   // Decides the concrete buffer allocation mode, depending on the hardware
+--- a/media/gpu/vaapi/vaapi_wrapper.cc
++++ b/media/gpu/vaapi/vaapi_wrapper.cc
+@@ -131,6 +131,9 @@ media::VAImplementation VendorStringToImplementationType(
+   } else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
+                               base::CompareCase::SENSITIVE)) {
+     return media::VAImplementation::kIntelIHD;
++  } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
++                              base::CompareCase::SENSITIVE)) {
++    return media::VAImplementation::kNVIDIAVDPAU;
+   }
+   return media::VAImplementation::kOther;
+ }
+--- a/media/gpu/vaapi/vaapi_wrapper.h
++++ b/media/gpu/vaapi/vaapi_wrapper.h
+@@ -79,6 +79,7 @@ enum class VAImplementation {
+   kIntelIHD,
+   kOther,
+   kInvalid,
++  kNVIDIAVDPAU,
+ };
+
+ // This class handles VA-API calls and ensures proper locking of VA-API calls
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
new file mode 100644
index 00000000000..32f0ae2fb5e
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
+index ed0e2f5208b..5b431a030d5 100644
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -14,7 +14,7 @@ buildflag_header("buildflags") {
+ 
+   flags = [
+     "ENABLE_WIDEVINE=$enable_widevine",
+-    "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
++    "BUNDLE_WIDEVINE_CDM=true",
+     "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
+   ]
+ }
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
new file mode 100644
index 00000000000..434bd77b6d1
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
@@ -0,0 +1,93 @@
+{ stdenv, gcc
+, jshon
+, glib
+, nspr
+, nss
+, fetchzip
+, patchelfUnstable
+, enablePepperFlash ? false
+
+, upstream-info
+}:
+
+with stdenv.lib;
+
+let
+  mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}";
+
+  # Generate a shell fragment that emits flags appended to the
+  # final makeWrapper call for wrapping the browser's main binary.
+  #
+  # Note that this is shell-escaped so that only the variable specified
+  # by the "output" attribute is substituted.
+  mkPluginInfo = { output ? "out", allowedVars ? [ output ]
+                 , flags ? [], envVars ? {}
+                 }: let
+    shSearch = ["'"] ++ map (var: "@${var}@") allowedVars;
+    shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars;
+    # We need to triple-escape "val":
+    #  * First because makeWrapper doesn't do any quoting of its arguments by
+    #    itself.
+    #  * Second because it's passed to the makeWrapper call separated by IFS but
+    #    not by the _real_ arguments, for example the Widevine plugin flags
+    #    contain spaces, so they would end up as separate arguments.
+    #  * Third in order to be correctly quoted for the "echo" call below.
+    shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
+    mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'";
+    mkFlag = flag: ["--add-flags" (shEsc flag)];
+    mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)];
+    envList = mapAttrsToList mkEnvVar envVars;
+    quoted = map mkSh (flatten ((map mkFlag flags) ++ envList));
+  in ''
+    mkdir -p "''$${output}/nix-support"
+    echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
+  '';
+
+  flash = stdenv.mkDerivation rec {
+    pname = "flashplayer-ppapi";
+    version = "32.0.0.344";
+
+    src = fetchzip {
+      url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
+      sha256 = "05ijlgsby9zxx0qs6f3vav1z0p6xr1cg6idl4akxvfmsl6hn6hkq";
+      stripRoot = false;
+    };
+
+    patchPhase = ''
+      chmod +x libpepflashplayer.so
+      patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so
+    '';
+
+    doCheck = true;
+    checkPhase = ''
+      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+    '';
+
+    installPhase = ''
+      flashVersion="$(
+        "${jshon}/bin/jshon" -F manifest.json -e version -u
+      )"
+
+      install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so"
+
+      ${mkPluginInfo {
+        allowedVars = [ "out" "flashVersion" ];
+        flags = [
+          "--ppapi-flash-path=@out@/lib/libpepflashplayer.so"
+          "--ppapi-flash-version=@flashVersion@"
+        ];
+      }}
+    '';
+
+    dontStrip = true;
+
+    meta = {
+      license = stdenv.lib.licenses.unfree;
+      maintainers = with stdenv.lib.maintainers; [ taku0 ];
+      platforms = platforms.x86_64;
+    };
+  };
+
+in {
+  enabled = optional enablePepperFlash flash;
+}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
new file mode 100644
index 00000000000..9b5c76f5342
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
@@ -0,0 +1,6 @@
+{
+  "81.0.4044.92" = {
+    rev = "81.0.4044.92-2";
+    sha256 = "071a33idn2zcix6z8skn7y85mhb9w5s0bh0fvrjm269y7cmjrh3l";
+  };
+}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix
new file mode 100644
index 00000000000..17418c90af4
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, makeWrapper
+, patch
+}:
+{ rev
+, sha256
+}:
+
+stdenv.mkDerivation rec {
+  name = "ungoogled-chromium-${version}";
+
+  version = rev;
+
+  src = fetchFromGitHub {
+    owner = "Eloston";
+    repo = "ungoogled-chromium";
+    inherit rev sha256;
+  };
+
+  dontBuild = true;
+
+  buildInputs = [
+    python3Packages.python
+    patch
+  ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  patchPhase = ''
+    sed -i '/chromium-widevine/d' patches/series
+  '';
+
+  installPhase = ''
+    mkdir $out
+    cp -R * $out/
+    wrapProgram $out/utils/patches.py --add-flags "apply" --prefix PATH : "${patch}/bin"
+  '';
+}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix
new file mode 100644
index 00000000000..6dff17c69dd
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix
@@ -0,0 +1,271 @@
+let maybePkgs = import ../../../../../. {}; in
+
+{ stdenv     ? maybePkgs.stdenv
+, runCommand ? maybePkgs.runCommand
+, fetchurl   ? maybePkgs.fetchurl
+, writeText  ? maybePkgs.writeText
+, curl       ? maybePkgs.curl
+, cacert     ? maybePkgs.cacert
+, nix        ? maybePkgs.nix
+}:
+
+let
+  inherit (stdenv) lib;
+
+  sources = if builtins.pathExists ./upstream-info.nix
+            then import ./upstream-info.nix
+            else {};
+
+  bucketURL = "https://commondatastorage.googleapis.com/"
+            + "chromium-browser-official";
+
+  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
+
+  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
+
+  getDebURL = channelName: version: arch: mirror: let
+    packageSuffix = if channelName == "dev" then "unstable" else channelName;
+    packageName = "google-chrome-${packageSuffix}";
+  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
+
+  # Untrusted mirrors, don't try to update from them!
+  debMirrors = [
+    "http://95.31.35.30/chrome/pool/main/g"
+    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+    "http://repo.fdzh.org/chrome/deb/pool/main/g"
+  ];
+
+in {
+  getChannel = channel: let
+    chanAttrs = builtins.getAttr channel sources;
+  in {
+    inherit channel;
+    inherit (chanAttrs) version;
+
+    main = fetchurl {
+      url = mkVerURL chanAttrs.version;
+      inherit (chanAttrs) sha256;
+    };
+
+    binary = fetchurl (let
+      mkUrls = arch: let
+        mkURLForMirror = getDebURL channel chanAttrs.version arch;
+      in map mkURLForMirror ([ debURL ] ++ debMirrors);
+    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
+      urls = mkUrls "amd64";
+      sha256 = chanAttrs.sha256bin64;
+    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
+      urls = mkUrls "i386";
+      sha256 = chanAttrs.sha256bin32;
+    } else throw "No Chrome plugins are available for your architecture.");
+  };
+
+  update = let
+    csv2nix = name: src: import (runCommand "${name}.nix" {
+      src = builtins.fetchurl src;
+    } ''
+      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
+      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
+      echo "[" > "$out"
+      tail -n +2 "$src" | while IFS=, read -r -a line; do
+        echo "  {"
+        for idx in "''${!headings[@]}"; do
+          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
+        done
+        echo "  }"
+      done >> "$out"
+      echo "]" >> "$out"
+    '');
+
+    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
+      ${attrs.os}.${attrs.channel} = attrs // {
+        history = let
+          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
+          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
+          cond = h: attrs.os == h.os && attrs.channel == h.channel
+                 && lib.versionOlder h.version attrs.current_version;
+          # Note that this is a *reverse* sort!
+          sorter = a: b: lib.versionOlder b.version a.version;
+          sorted = builtins.sort sorter (lib.filter cond history);
+        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
+        version = attrs.current_version;
+      };
+    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
+
+    /*
+      XXX: This is essentially the same as:
+
+        builtins.tryEval (builtins.fetchurl url)
+
+      ... except that tryEval on fetchurl isn't working and doesn't catch
+      errors for fetchurl, so we go for a different approach.
+
+      We only have fixed-output derivations that can have networking access, so
+      we abuse SHA1 and its weaknesses to forge a fixed-output derivation which
+      is not so fixed, because it emits different contents that have the same
+      SHA1 hash.
+
+      Using this method, we can distinguish whether the URL is available or
+      whether it's not based on the actual content.
+
+      So let's use tryEval as soon as it's working with fetchurl in Nix.
+    */
+    tryFetch = url: let
+      # SHA1 hash collisions from https://shattered.io/static/shattered.pdf:
+      collisions = runCommand "sha1-collisions" {
+        outputs = [ "out" "good" "bad" ];
+        base64 = ''
+          QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4
+          Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0
+          MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk
+          0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN
+          GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp
+          o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ
+          qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH
+          MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B
+          mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0
+          S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC
+          Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc
+          upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu
+          renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ
+          yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL
+          StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8
+          wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE
+          JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW
+          lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU
+          pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6
+          rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE
+          sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P
+          i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl
+          9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen
+          r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ
+          YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw
+          l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM
+          sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp
+          V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh
+          t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt
+          Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1
+          i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p
+          y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW
+          3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k
+          NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA==
+        '';
+      } ''
+        echo "$base64" | base64 -d | tar xj
+        mv good.pdf "$good"
+        mv bad.pdf "$bad"
+        touch "$out"
+      '';
+
+      cacheVal = let
+        urlHash = builtins.hashString "sha256" url;
+        timeSlice = builtins.currentTime / 600;
+      in "${urlHash}-${toString timeSlice}";
+
+    in {
+      success = import (runCommand "check-success" {
+        result = stdenv.mkDerivation {
+          name = "tryfetch-${cacheVal}";
+          inherit url;
+
+          outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a";
+          outputHashMode = "flat";
+          outputHashAlgo = "sha1";
+
+          nativeBuildInputs = [ curl ];
+          preferLocalBuild = true;
+
+          inherit (collisions) good bad;
+
+          buildCommand = ''
+            if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
+               curl -s -L -f -I "$url" > /dev/null; then
+              cp "$good" "$out"
+            else
+              cp "$bad" "$out"
+            fi
+          '';
+
+          impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+        };
+        inherit (collisions) good;
+      } ''
+        if cmp -s "$result" "$good"; then
+          echo true > "$out"
+        else
+          echo false > "$out"
+        fi
+      '');
+      value = builtins.fetchurl url;
+    };
+
+    fetchLatest = channel: let
+      result = tryFetch (mkVerURL channel.version);
+    in if result.success then result.value else fetchLatest (channel // {
+      version = if channel.history != []
+                then (lib.head channel.history).version
+                else throw "Unfortunately there's no older version than " +
+                           "${channel.version} available for channel " +
+                           "${channel.channel} on ${channel.os}.";
+      history = lib.tail channel.history;
+    });
+
+    getHash = path: import (runCommand "gethash.nix" {
+      inherit path;
+      nativeBuildInputs = [ nix ];
+    } ''
+      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
+      echo "\"$sha256\"" > "$out"
+    '');
+
+    isLatest = channel: version: let
+      ourVersion = sources.${channel}.version or null;
+    in if ourVersion == null then false
+       else lib.versionOlder version sources.${channel}.version
+         || version == sources.${channel}.version;
+
+    # We only support GNU/Linux right now.
+    linuxChannels = let
+      genLatest = channelName: channel: let
+        newUpstream = {
+          inherit (channel) version;
+          sha256 = getHash (fetchLatest channel);
+        };
+        keepOld = let
+          oldChannel = sources.${channelName};
+        in {
+          inherit (oldChannel) version sha256;
+        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
+          inherit (oldChannel) sha256bin32;
+        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
+          inherit (oldChannel) sha256bin64;
+        };
+      in if isLatest channelName channel.version then keepOld else newUpstream;
+    in lib.mapAttrs genLatest channels.linux;
+
+    getLinuxFlash = channelName: channel: let
+      inherit (channel) version;
+      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
+      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
+      isNew = arch: attr: !(builtins.hasAttr attr channel)
+                       && packages.${arch}.success;
+    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
+      sha256bin32 = getHash (packages.i386.value);
+    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
+      sha256bin64 = getHash (packages.amd64.value);
+    };
+
+    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
+
+    dumpAttrs = indent: attrs: let
+      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
+                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
+      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
+      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
+      attrLines = lib.mapAttrsToList mkAttr attrs;
+    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
+  in writeText "chromium-new-upstream-info.nix" ''
+    # This file is autogenerated from update.sh in the same directory.
+    ${dumpAttrs 0 newChannels}
+  '';
+}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh b/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh
new file mode 100755
index 00000000000..ea67a62c107
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+cd "$(dirname "$0")"
+sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
+cat "$sp" > upstream-info.nix
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
new file mode 100644
index 00000000000..c5f9d60122d
--- /dev/null
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
@@ -0,0 +1,18 @@
+# This file is autogenerated from update.sh in the same directory.
+{
+  beta = {
+    sha256 = "0i0szd749ihb08rxnsmsbxq75b6x952wpk94jwc0ncv6gb83zkx2";
+    sha256bin64 = "1y70kmfz9nv507b0zdda7zfk2ac9qh9m2gq00aphdmzd0al7skj8";
+    version = "81.0.4044.92";
+  };
+  dev = {
+    sha256 = "1rydvjmv62zj95sf0fgsyipqz2hphbxm60y8q0813wq9ym35d4yy";
+    sha256bin64 = "1m6740lw7xjjp1lplwp9ii4d3l7dfa9jrv5bysm4ar5pb9kywrai";
+    version = "83.0.4100.3";
+  };
+  stable = {
+    sha256 = "0i0szd749ihb08rxnsmsbxq75b6x952wpk94jwc0ncv6gb83zkx2";
+    sha256bin64 = "1ig899cpahw1xfhdff5xj6w4k8jja5smxvrcbw6b0jcjmawdrf72";
+    version = "81.0.4044.92";
+  };
+}
diff --git a/pkgs/applications/networking/cluster/cni/plugins.nix b/pkgs/applications/networking/cluster/cni/plugins.nix
index 9c6eec1a336..d457ddd98bf 100644
--- a/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -37,6 +37,6 @@ buildGoPackage rec {
     homepage = "https://github.com/containernetworking/plugins";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ cstrahan saschagrunert ];
+    maintainers = with maintainers; [ cstrahan ] ++ teams.podman.members;
   };
 }
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index aee162ba6f2..0eac175a170 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "0pg5cwgyfb4isy2fn233kj3bdn0i8qqp90yzix0khs5maalpnrk1";
+    sha256 = "1j6pr1a9ff32bnjq9rncllmfpraip5r2fj3zsljw5jq68x5wamdc";
   };
   modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index 3f0a83d015d..e8500872d52 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -6,8 +6,6 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/StackExchange/dnscontrol";
 
-  goDeps = ./deps.nix;
-
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
@@ -15,9 +13,7 @@ buildGoPackage rec {
     sha256 = "1j8i4k7bqkqmi6dmc9fxfab49a7qigig72rlbga902lw336p6cc7";
   };
 
-  postInstall = ''
-    rm $bin/bin/{build,convertzone,generate,validate}
-  '';
+  subPackages = [ "." ];
 
   meta = with stdenv.lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
diff --git a/pkgs/applications/networking/dnscontrol/deps.nix b/pkgs/applications/networking/dnscontrol/deps.nix
deleted file mode 100644
index 55cb5daa18f..00000000000
--- a/pkgs/applications/networking/dnscontrol/deps.nix
+++ /dev/null
@@ -1,1236 +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 = "335e9e09b93e";
-      sha256 = "1aiglr6d2369nf3s9ig1kc0nixsivcmh7p1fyzkcf6n6ql0p2zsm";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-sdk-for-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-sdk-for-go";
-      rev = "v39.1.0";
-      sha256 = "1s0j7gh3d3p157py7v6525c6zs07hdiry97dhg4c8z7ww35wxhj7";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/xgb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/xgb";
-      rev = "27f122750802";
-      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
-    };
-  }
-  {
-    goPackagePath = "github.com/DisposaBoy/JsonConfigReader";
-    fetch = {
-      type = "git";
-      url = "https://github.com/DisposaBoy/JsonConfigReader";
-      rev = "5ea4d0ddac55";
-      sha256 = "022wzrkf0rni9yb15439w81kj0kb4667zx6n2zq07ysw7lk6ahqz";
-    };
-  }
-  {
-    goPackagePath = "github.com/TomOnTime/utfutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/TomOnTime/utfutil";
-      rev = "09c41003ee1d";
-      sha256 = "01d6w8migw5px19jg0mm7qhsa1ydcz9wvl838nsclfw63x5sy70i";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/kingpin";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kingpin";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    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 = "f65c72e2690d";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/andreyvit/diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/andreyvit/diff";
-      rev = "c7f18ee00883";
-      sha256 = "1s4qjkxig5yqahpzfl4xqh4kzi9mymdpkzq6kj3f4dr5dl3hlynr";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/go-metrics";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/go-metrics";
-      rev = "f0300d1749da";
-      sha256 = "13l7c35ps0r27vxfil2w0xhhc7w5rh00awvlmn4cz0a937b9ffpv";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/go-radix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/go-radix";
-      rev = "7fddfc383310";
-      sha256 = "0y8chspn14n9xpsfb9gxnnf819rfpriaz64v81p7873a42kkhxb4";
-    };
-  }
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "v1.29.21";
-      sha256 = "0q97abz6cjj1gf3gfd52gjx39grfhlcjax8306zw9038a8v0nadc";
-    };
-  }
-  {
-    goPackagePath = "github.com/bgentry/speakeasy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bgentry/speakeasy";
-      rev = "v0.1.0";
-      sha256 = "02dfrj0wyphd3db9zn2mixqxwiz1ivnyc5xc7gkz58l5l27nzp8s";
-    };
-  }
-  {
-    goPackagePath = "github.com/billputer/go-namecheap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/billputer/go-namecheap";
-      rev = "0c7adb0710f8";
-      sha256 = "09jkymml6f0nvz7md7s4ayj75xdms77ziz9rkw4kvj7jhv36302p";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.1.1";
-      sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8";
-    };
-  }
-  {
-    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/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v2.0.0";
-      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
-    };
-  }
-  {
-    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/digitalocean/godo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/digitalocean/godo";
-      rev = "v1.30.0";
-      sha256 = "0z38lg1zd57b5ymxdxhz5rs5rynpzhqmbvm0marhh0v7v9bbk0rx";
-    };
-  }
-  {
-    goPackagePath = "github.com/dimchansky/utfbom";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dimchansky/utfbom";
-      rev = "v1.1.0";
-      sha256 = "06s61wwd32fad1p8qn5blqjd5791avzb13fnqflkkg993adw49ww";
-    };
-  }
-  {
-    goPackagePath = "github.com/dnsimple/dnsimple-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dnsimple/dnsimple-go";
-      rev = "v0.31.0";
-      sha256 = "0i074r3m0bqggmplswymgj6yfzbsrcqw8gn6py9x8g3kyl4si0x0";
-    };
-  }
-  {
-    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/exoscale/egoscale";
-    fetch = {
-      type = "git";
-      url = "https://github.com/exoscale/egoscale";
-      rev = "v0.23.0";
-      sha256 = "0dgc08sdvy2cj7yygrlnyp6v9m829h4v0pm3vdsj9yx3bps5v7iy";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "v1.7.0";
-      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/structs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/structs";
-      rev = "v1.1.0";
-      sha256 = "1wrhb8wp8zpzggl61lapb627lw8yv281abvr6vqakmf569nswa9q";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-acme/lego";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-acme/lego";
-      rev = "v2.7.2";
-      sha256 = "1137l22jrwk8hvdzjbmfkvd9nllp6sznzy66ngmcsc0ybp19hcry";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-ldap/ldap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ldap/ldap";
-      rev = "v3.0.2";
-      sha256 = "1srb1nkcbs0v1hcdz6j4zhg000h763j83jlklsiwanvbp48y4lhz";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev = "v1.5.0";
-      sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-test/deep";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-test/deep";
-      rev = "042da051cf31";
-      sha256 = "08bya0s7m15f5qm1kn2r42g1r4lpq0svpaqr0zaac4hmaxj7vnid";
-    };
-  }
-  {
-    goPackagePath = "github.com/gobwas/glob";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gobwas/glob";
-      rev = "e7a84e9525fe";
-      sha256 = "1v6vjklq06wqddv46ihajahaj1slv0imgaivlxr8bsx59i90js5q";
-    };
-  }
-  {
-    goPackagePath = "github.com/gofrs/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gofrs/uuid";
-      rev = "v3.2.0";
-      sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz";
-    };
-  }
-  {
-    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.3.1";
-      sha256 = "1wnfa8njxdym1qb664dmfnkpm4pmqy22hqjlqpwaaiqhglb5g9d1";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.3";
-      sha256 = "1cyyr52yhj3fzrily3rmsbqyj8va4ld75lmry0857m39rgpv8sy1";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "v0.0.1";
-      sha256 = "0gp3kkzlm3wh37kgkhbqxq3zx07iqbgis5w9mf4d64h6vjq760is";
-    };
-  }
-  {
-    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.4.0";
-      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-github";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-github";
-      rev = "v17.0.0";
-      sha256 = "1kvw95l77a5n5rgal9n1xjh58zxb3a40ij1j722b1h4z8yg9jhg4";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-querystring";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-querystring";
-      rev = "c8c88dbee036";
-      sha256 = "1yckg2052mz7ps1m68wri6kyb5n4g0vx2yf7s0xs9gdqvvscp57l";
-    };
-  }
-  {
-    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 = "54271f7e092f";
-      sha256 = "14x4ydifz23rzaylggvwbm3dwlv1bc6s0bclmkxck9nbjbqw89vy";
-    };
-  }
-  {
-    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";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev = "0766667cb4d1";
-      sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
-    };
-  }
-  {
-    goPackagePath = "github.com/gopherjs/jquery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/jquery";
-      rev = "73f4c7416038";
-      sha256 = "1xhl0k52v3djalnd02a0ph572f85i1szj2x4q3lglkq40j7racd2";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/errwrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/errwrap";
-      rev = "v1.0.0";
-      sha256 = "0slfb6w3b61xz04r32bi0a1bygc82rjzhqkxj2si2074wynqnr1c";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-cleanhttp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-cleanhttp";
-      rev = "v0.5.1";
-      sha256 = "07kx3fhryqmaw3czacmm11qwx63js2q8cfq967vphk7xg9q377kk";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-hclog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-hclog";
-      rev = "v0.9.2";
-      sha256 = "0pakba7rdkjgq50r79sbbpavymbyib77cy613wl734mpi30ywrxm";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-immutable-radix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-immutable-radix";
-      rev = "v1.0.0";
-      sha256 = "1v3nmsnk1s8bzpclrhirz7iq0g5xxbw9q5gvrg9ss6w9crs72qr6";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-multierror";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-multierror";
-      rev = "v1.0.0";
-      sha256 = "00nyn8llqzbfm8aflr9kwsvpzi4kv8v45c141v88xskxp5xf6z49";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-plugin";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-plugin";
-      rev = "v1.0.1";
-      sha256 = "0aama8vdyrfzjdhxc1l4cwhmgydl989lywhq3pg3slzjg6r00rda";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-retryablehttp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-retryablehttp";
-      rev = "v0.6.3";
-      sha256 = "1vnhr7yry71jldmmj5gxhq49crhi9vrmqc2i41mycpnva2zd8a0i";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-rootcerts";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-rootcerts";
-      rev = "v1.0.1";
-      sha256 = "0ca5h7vlvrghf24dzh8l6w5px293n173qxfkjxb9kgsl6hsrsl3y";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-sockaddr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-sockaddr";
-      rev = "v1.0.2";
-      sha256 = "0y106nhd3s63lj7h7k21iq0br97h0z9qjrvx028zqcsq9407k9is";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-uuid";
-      rev = "v1.0.1";
-      sha256 = "0jvb88m0rq41bwgirsadgw7mnayl27av3gd2vqa3xvxp3fy0hp5k";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-version";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-version";
-      rev = "v1.1.0";
-      sha256 = "1ykh3jl5zj5a4irkgp5mq936bqkznmf9lp23qk741vh4r5874vi8";
-    };
-  }
-  {
-    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";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/yamux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/yamux";
-      rev = "2f1d1f20f75d";
-      sha256 = "1fga3p6j2g24ip9qjfwn3nqjr00m4nnjz92app7ms3sz7vgq2a7s";
-    };
-  }
-  {
-    goPackagePath = "github.com/hexonet/go-sdk";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hexonet/go-sdk";
-      rev = "v2.2.3";
-      sha256 = "0mgkfrc7qlm4xf1v7kb29p7wq6rmaaha9zv8kwa27r8hjx6qnb8c";
-    };
-  }
-  {
-    goPackagePath = "github.com/jarcoal/httpmock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jarcoal/httpmock";
-      rev = "v1.0.4";
-      sha256 = "1x04i9hhvdxi9xmyf0vbi5azlh7rr4blsq7fbhps8i2gdpga612y";
-    };
-  }
-  {
-    goPackagePath = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev = "2437e8417af5";
-      sha256 = "1hwcbr7nrlfshwr4hrac8ch8gvfpf07qi72bpqmqi272c67ma89v";
-    };
-  }
-  {
-    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/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "v4.20.0";
-      sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
-    };
-  }
-  {
-    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/malexdev/utfutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/malexdev/utfutil";
-      rev = "00c8d4a8e7a8";
-      sha256 = "01d6w8migw5px19jg0mm7qhsa1ydcz9wvl838nsclfw63x5sy70i";
-    };
-  }
-  {
-    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.3";
-      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "v1.1.27";
-      sha256 = "0fpd9alvhzrkb1c31n4lrxlpv1nlhy51w1yg39xxb3mjmrb7lby1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/cli";
-      rev = "v1.0.0";
-      sha256 = "1i9kmr7rcf10d2hji8h4247hmc0nbairv7a0q51393aw2h1bnwg2";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/copystructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/copystructure";
-      rev = "v1.0.0";
-      sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-testing-interface";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-testing-interface";
-      rev = "v1.0.0";
-      sha256 = "1dl2js8di858bawg7dadlf1qjpkl2g3apziihjyf5imri3znyfpw";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-wordwrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-wordwrap";
-      rev = "v1.0.0";
-      sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/reflectwalk";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/reflectwalk";
-      rev = "v1.0.0";
-      sha256 = "0wzkp0fdx22n8f7y9y37dgmnlrlfsv9zjdb48cbx7rsqsbnny7l0";
-    };
-  }
-  {
-    goPackagePath = "github.com/mjibson/esc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mjibson/esc";
-      rev = "v0.2.0";
-      sha256 = "0ci3bdm01prm114plcwkgzbqn825lh0zc1iqaw3jicjay5sh0bis";
-    };
-  }
-  {
-    goPackagePath = "github.com/namedotcom/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namedotcom/go";
-      rev = "08470befbe04";
-      sha256 = "00ai7fd74sn4alqmpqsiyczirli50b7m059b6zzg1izy9g4cdd4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/oklog/run";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oklog/run";
-      rev = "v1.0.0";
-      sha256 = "1pbjza4claaj95fpqvvfrysvs10y7dm0pl6qr5lzh6qy1vnhmcgw";
-    };
-  }
-  {
-    goPackagePath = "github.com/ovh/go-ovh";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ovh/go-ovh";
-      rev = "ba5adb4cf014";
-      sha256 = "1rwxib0pn2ni6nfn2sijvb6cd424n95gnqhs21q6mz08n9hnzspy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pascaldekloe/goe";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pascaldekloe/goe";
-      rev = "v0.1.0";
-      sha256 = "1dqd3mfb4z2vmv6pg6fhgvfc53vhndk24wcl9lj1rz02n6m279fq";
-    };
-  }
-  {
-    goPackagePath = "github.com/philhug/opensrs-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/philhug/opensrs-go";
-      rev = "9dfa7433020d";
-      sha256 = "1bjw3llpx5n1srylw08310ch14sz1pw5mban1yakax8606q3dqdf";
-    };
-  }
-  {
-    goPackagePath = "github.com/pierrec/lz4";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pierrec/lz4";
-      rev = "v2.0.5";
-      sha256 = "0y5rh7z01zycd59nnjpkqq0ydyjmcg9j1xw15q1i600l9j9g617p";
-    };
-  }
-  {
-    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/posener/complete";
-    fetch = {
-      type = "git";
-      url = "https://github.com/posener/complete";
-      rev = "v1.1.1";
-      sha256 = "1nbdiybjizbaxbf5q0xwbq0cjqw4bl6jggvsjzrpif0w86fcjda2";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "14fe0d1b01d4";
-      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
-    };
-  }
-  {
-    goPackagePath = "github.com/renier/xmlrpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/renier/xmlrpc";
-      rev = "ce4a1a486c03";
-      sha256 = "0byvacdwhagva53r2frzqws3f5j7qzigmxzxahpcv300i8pm9i50";
-    };
-  }
-  {
-    goPackagePath = "github.com/robertkrimen/otto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/robertkrimen/otto";
-      rev = "c382bd3c16ff";
-      sha256 = "043y6l647snsz71mdy84s2d3kn22aj6rbqd6c1vd8absvamqhlxa";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v2.0.1";
-      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
-    };
-  }
-  {
-    goPackagePath = "github.com/ryanuber/columnize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ryanuber/columnize";
-      rev = "v2.1.0";
-      sha256 = "0m9jhagb1k44zfcdai76xdf9vpi3bqdl7p078ffyibmz0z9jfap6";
-    };
-  }
-  {
-    goPackagePath = "github.com/ryanuber/go-glob";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ryanuber/go-glob";
-      rev = "v1.0.0";
-      sha256 = "0mhrjy0iba3jr6bsgy7q50zjr42ar1njn1sb2fvihlkhxgb2ahv2";
-    };
-  }
-  {
-    goPackagePath = "github.com/sergi/go-diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sergi/go-diff";
-      rev = "v1.1.0";
-      sha256 = "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2";
-    };
-  }
-  {
-    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/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/softlayer/softlayer-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/softlayer/softlayer-go";
-      rev = "5e1c8cccc730";
-      sha256 = "0jsi0f60gx92qm1n2lcz65v425bbqf59dsr0dw4x1wmychp25mk7";
-    };
-  }
-  {
-    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/tdewolff/minify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/minify";
-      rev = "v2.3.6";
-      sha256 = "0p4v4ab49lm5y438k5aks06fpiagbjw2j2x7i8jaa273mkgicrbb";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/parse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/parse";
-      rev = "v2.3.4";
-      sha256 = "00hclphbjgc5vjrqgnclp72v8c45k35vmj84d2a0f7bw8cc88zcd";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/test";
-      rev = "v1.0.6";
-      sha256 = "12glhjb4cwp6yxwd17rwa6b4gxna3lm01bgc7yn9di58chc7lyh3";
-    };
-  }
-  {
-    goPackagePath = "github.com/tiramiseb/go-gandi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tiramiseb/go-gandi";
-      rev = "e1cf2e430b3a";
-      sha256 = "1m6wzif0dgssh5hzffwqg39789k9nwvj8xaq0d492f0fr14w0nng";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "v2.1.1";
-      sha256 = "0znf7pim7xsl8x6pcgi9vm0px48xrqfkw6ysn4yv6xc2569zpjs1";
-    };
-  }
-  {
-    goPackagePath = "github.com/vultr/govultr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/vultr/govultr";
-      rev = "v0.2.0";
-      sha256 = "09103hb2rx93d6vyr54bqdai35d6l5q3klk09k53aqrijp8pycfz";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.22.0";
-      sha256 = "05jr8gkr2w34i5wwki4zhl5ch0qrgi7cdgag5iy5gpxplhbrvbg9";
-    };
-  }
-  {
-    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 = "efd6b22b2522";
-      sha256 = "0ysahwb7p6y09izks4ca8nk2w414gmjxzz44l5rmadlvk3k66cgp";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "0694c2d4d067";
-      sha256 = "0v4rs4xpi7agbdzjw713mp7gzij8z89058s0yfj3276mzlns3zk4";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "959b441ac422";
-      sha256 = "1mgcv5f00pkzsbwnq2y7vqvd1b4lr5a3s47cphh2qv4indfk7pck";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mobile";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mobile";
-      rev = "d3739f865fa6";
-      sha256 = "079ck2dyikacnph9s5mf0hrjnqlk6lc8q64dwnyw45w3xbbc50mg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mod";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mod";
-      rev = "v0.2.0";
-      sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl";
-    };
-  }
-  {
-    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 = "cd5d95a43a6e";
-      sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "cb0a6d8edb6c";
-      sha256 = "0xkrf2k6nn1qh64ckrc4rmf1vhkzs0p7f1rnhv4v4pz9mvgh3v6w";
-    };
-  }
-  {
-    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 = "9d24e82272b4";
-      sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "20ab64c0d93f";
-      sha256 = "1gfhw6daabjy771b3c0k0yga18ja50845n648mgagsa441dxvlch";
-    };
-  }
-  {
-    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.20.0";
-      sha256 = "13syr1x33k6mrn5w6l4sgdbzn368w3m60vf6kk2j10fwa45125rg";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.6.5";
-      sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w";
-    };
-  }
-  {
-    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/asn1-ber.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/asn1-ber.v1";
-      rev = "f715ec2f112d";
-      sha256 = "00ixms8x3lrhywbvq5v2sagcqsxa1pcnlk17dp5lnwckv3xg4psb";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "41f04d3bba15";
-      sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/ini.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ini.v1";
-      rev = "v1.42.0";
-      sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/ns1/ns1-go.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ns1/ns1-go.v2";
-      rev = "c563826f4cbe";
-      sha256 = "0swpsy0bdkwqlb7i0fgxs55sdfsy7pbnh6a09crhbw5xldvswq5k";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/sourcemap.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/sourcemap.v1";
-      rev = "v1.0.5";
-      sha256 = "08rf2dl13hbnm3fq2cm0nnsspy9fhf922ln23cz5463cv7h62as4";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/square/go-jose.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/square/go-jose.v2";
-      rev = "v2.3.1";
-      sha256 = "11r93g9xrcjqj7qvq8sbd5hy5rnbpmim0vdsp6rbav8gl7wimaa3";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.8";
-      sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "ea95bdfd59fc";
-      sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/binaryregexp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/binaryregexp";
-      rev = "v0.2.0";
-      sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 1237892ef64..74a644d189d 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -41,7 +41,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Free and Open Source messaging and emailing app that combines common web applications into one";
-    homepage = "http://rambox.pro";
+    homepage = "https://rambox.pro";
     license = licenses.mit;
     maintainers = with maintainers; [ gnidorah ma27 ];
     platforms = ["i686-linux" "x86_64-linux"];
diff --git a/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
index 01295697ad3..de46c891d1f 100644
--- a/pkgs/applications/networking/instant-messengers/ricochet/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, makeDesktopItem
+{ mkDerivation, stdenv, fetchurl, pkgconfig, makeDesktopItem
 , qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols
 , openssl, protobuf, qmake
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "ricochet";
   version = "1.1.4";
 
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 7295f6c48ad..c39b199235d 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.1"; # Please backport all updates to the stable channel.
+  version = "1.33.3"; # 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 = "0p9ak0cmk9b77dzbw4y2xmxqg211y62n7ckggwf7bcg48wzj0jy7";
+    sha256 = "1brw1hidmrznb55cb794yvgzin7sf3cxnffivmag4vf2a2vcvf4y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/pkgs/applications/networking/instant-messengers/swift-im/default.nix
index ce59d574619..953ce2809c4 100644
--- a/pkgs/applications/networking/instant-messengers/swift-im/default.nix
+++ b/pkgs/applications/networking/instant-messengers/swift-im/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, qttools, scons
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, scons
 , GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2
 , lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "swift-im";
   version = "4.0.2";
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 60fd95a1476..6f4099c1d8d 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -19,12 +19,12 @@ with lib;
 
 mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.0.1";
+  version = "2.1.0";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "0g3jw4can9gmp48s3b8s1w8n9xi54i142y74fszxf9jyq5drzlff";
+    sha256 = "0l5917w90z9pg1al1hzcycb4yxv03vc88jg958ifl9nlvz1arll6";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/tensor/default.nix b/pkgs/applications/networking/instant-messengers/tensor/default.nix
index dcb2c720bc6..1ea249a8b51 100644
--- a/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
+{ mkDerivation, stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
 
 # we now have libqmatrixclient so a future version of tensor that supports it
 # should use that
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "tensor-git";
   version = "2017-02-21";
 
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index f78b085b6c6..0117ab978cc 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig, texinfo
+{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, pkgconfig, texinfo
 , netcat-gnu, gnutls, gsasl, libidn2, Security
 , withKeyring ? true, libsecret ? null
 , systemd ? null }:
@@ -16,8 +16,13 @@ in stdenv.mkDerivation rec {
     sha256 = "1rarck61mz3mwg0l30vjj6j9fq6gc7gic0r1c1ppwpq2izj57jzc";
   };
 
+  # the 2nd patch should go when 1.8.9 is released
   patches = [
     ./paths.patch
+    (fetchpatch {
+      url = "https://github.com/marlam/msmtp-mirror/commit/c78f24347ec996c7a3830b48403bf3736afca071.patch";
+      sha256 = "0d4sc2f5838jriv65wahpgvwckkzqhdk3hs660fyg80si2i0l1bx";
+    })
   ];
 
   buildInputs = [ gnutls gsasl libidn2 ]
diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix
index 325dc653e5b..6b1a7ace902 100644
--- a/pkgs/applications/networking/p2p/stig/default.nix
+++ b/pkgs/applications/networking/p2p/stig/default.nix
@@ -1,9 +1,9 @@
 { lib
 , fetchFromGitHub
-, python3
+, python3Packages
 }:
 
-python3.pkgs.buildPythonApplication rec {
+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
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
       --replace "urwidtrees>=1.0.3dev0" "urwidtrees"
   '';
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python3Packages; [
     urwid
     urwidtrees
     aiohttp
@@ -38,17 +38,23 @@ python3.pkgs.buildPythonApplication rec {
     setproctitle
   ];
 
-  checkInputs = with python3.pkgs; [
+  checkInputs = with python3Packages; [
     asynctest
-    pytest
+    pytestCheckHook
   ];
 
-  # test_string__month_day_hour_minute_second fails on darwin
-  checkPhase = ''
-    LC_ALL=en_US.utf8 pytest tests \
-      --deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second
+  dontUseSetuptoolsCheck = true;
+
+  preCheck = ''
+    export LC_ALL=C
   '';
 
+  pytestFlagsArray = [
+    "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"
+  ];
+
   meta = with lib; {
     description = "TUI and CLI for the BitTorrent client Transmission";
     homepage = "https://github.com/rndusr/stig";
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 8691335d129..151d652de52 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.67";
+  version = "2.72";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "0510wkwmwrlv61958zd5nsc4lr0l0lka3jf4pq3dyiyfsf4k20rq";
+    sha256 = "04si7xwbpvljdbngmzlfvkn51wih3aqcb5g6r76wdh3pfpppskhr";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/office/elementary-planner/0001-Revert-Add-patch.patch b/pkgs/applications/office/elementary-planner/0001-Revert-Add-patch.patch
deleted file mode 100644
index ede3bc7a6ad..00000000000
--- a/pkgs/applications/office/elementary-planner/0001-Revert-Add-patch.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From a6d8bd67416c848f9bf52f4746bda34216ae9993 Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Sun, 19 Apr 2020 12:48:59 -0400
-Subject: [PATCH] Revert "Add patch"
-
-This reverts commit c44127936b785afda0e914da4c1dc1e66a0ac97b.
----
- src/Application.vala | 49 --------------------------------------------
- 1 file changed, 49 deletions(-)
-
-diff --git a/src/Application.vala b/src/Application.vala
-index 43d52fbc..82a9ebe5 100644
---- a/src/Application.vala
-+++ b/src/Application.vala
-@@ -127,66 +127,17 @@ public class Planner : Gtk.Application {
- 
-         utils.apply_theme_changed ();
- 
--        // Set Theme and Icon
-         Gtk.Settings.get_default ().set_property ("gtk-icon-theme-name", "elementary");
-         Gtk.Settings.get_default ().set_property ("gtk-theme-name", "elementary");
- 
--        // Path Theme
--        var command = new Granite.Services.SimpleCommand (".", "echo $DESKTOP_SESSION");
--        command.run ();
--        command.output_changed.connect ((text) => {
--            print ("DESKTOP_SESSION: %s\n".printf (text));
--        });
--
--        if (get_os_info ("PRETTY_NAME") == null || get_os_info ("PRETTY_NAME").index_of ("elementary") == -1) {
--            string CSS = """
--                window decoration {
--                    box-shadow: none;
--                    margin: 1px;
--                }
--            """;
--
--            var _provider = new Gtk.CssProvider ();
--            _provider.load_from_data (CSS, CSS.length);
--
--            Gtk.StyleContext.add_provider_for_screen (
--                Gdk.Screen.get_default (), _provider,
--                Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
--            );
--        }
--
-         // Set shortcut
-         string quick_add_shortcut = settings.get_string ("quick-add-shortcut");
-         if (quick_add_shortcut == "") {
-             quick_add_shortcut = "<Primary>Tab";
-             settings.set_string ("quick-add-shortcut", quick_add_shortcut);
-         }
--
-         utils.set_quick_add_shortcut (quick_add_shortcut);
-     }
--    
--    public string get_os_info (string field) {
--        string return_value = "";
--        var file = File.new_for_path ("/etc/os-release");
--        try {
--            var osrel = new Gee.HashMap<string, string> ();
--            var dis = new DataInputStream (file.read ());
--            string line;
--            // Read lines until end of file (null) is reached
--            while ((line = dis.read_line (null)) != null) {
--                var osrel_component = line.split ("=", 2);
--                if (osrel_component.length == 2) {
--                    osrel[osrel_component[0]] = osrel_component[1].replace ("\"", "");
--                }
--            }
--
--            return_value = osrel[field];
--        } catch (Error e) {
--            warning ("Couldn't read os-release file, assuming elementary OS");
--        }
--        
--        return return_value;
--    }
- 
-     public override int command_line (ApplicationCommandLine command_line) {
-         bool silence_mode = false;
--- 
-2.25.1
-
diff --git a/pkgs/applications/office/elementary-planner/default.nix b/pkgs/applications/office/elementary-planner/default.nix
index b01c34d5a0e..3e3765ca77f 100644
--- a/pkgs/applications/office/elementary-planner/default.nix
+++ b/pkgs/applications/office/elementary-planner/default.nix
@@ -1,6 +1,12 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, meson, ninja, pkgconfig, desktop-file-utils
-, python3, vala, wrapGAppsHook
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, desktop-file-utils
+, python3
+, vala
+, wrapGAppsHook
 , evolution-data-server
 , libical
 , libgee
@@ -15,25 +21,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-planner";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planner";
     rev = version;
-    sha256 = "1kjk1zafx71zmax3whzpx6mzl037wlxri30bl2k9y9rg3fd09arr";
+    sha256 = "1jc668hg26vb1q50abm6k566v9qimgs9skkwmlgi5h37vxm3ai1x";
   };
 
-  patches = [
-    # Revert a patch the works around some stylesheet issues:
-    # https://github.com/alainm23/planner/issues/268
-    # https://github.com/alainm23/planner/issues/303
-    # The don't seem to be a problem with Pantheon on NixOS
-    # and for some reason produce the opposite effect with
-    # pantheon's stylesheet.
-    ./0001-Revert-Add-patch.patch
-  ];
-
   nativeBuildInputs = [
     desktop-file-utils
     meson
@@ -63,8 +59,15 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/meson/post_install.py
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # the theme is hardcoded
+      --prefix XDG_DATA_DIRS : "${pantheon.elementary-gtk-theme}/share"
+    )
+  '';
+
   meta = with stdenv.lib; {
-    description = "Task and project manager designed to elementary OS";
+    description = "Task manager with Todoist support designed for GNU/Linux 🚀️";
     homepage = "https://planner-todo.web.app";
     license = licenses.gpl3;
     maintainers = with maintainers; [ dtzWill ] ++ pantheon.maintainers;
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index d6084c0f37e..aa0c2dee979 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -116,7 +116,7 @@ mkDerivation rec {
     ];
     platforms = platforms.linux;
     description = "Desktop Publishing (DTP) and Layout program for Linux";
-    homepage = "http://www.scribus.net";
+    homepage = "https://www.scribus.net";
     # There are a lot of licenses... https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
     license = with licenses; [
       bsd3
diff --git a/pkgs/applications/science/biology/quast/default.nix b/pkgs/applications/science/biology/quast/default.nix
new file mode 100644
index 00000000000..e3c3ea23c2c
--- /dev/null
+++ b/pkgs/applications/science/biology/quast/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, python3Packages, zlib, bash, coreutils }:
+
+let
+  pythonPackages = python3Packages;
+  inherit (pythonPackages) python;
+in
+
+pythonPackages.buildPythonApplication rec {
+  pname = "quast";
+  version = "5.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/ablab/quast/releases/download/${pname}_${version}/${pname}-${version}.tar.gz";
+    sha256 = "13ml8qywbb4cc7wf2x7z5mz1rjqg51ab8wkizwcg4f6c40zgif6d";
+  };
+
+  pythonPath = with pythonPackages; [ simplejson joblib setuptools matplotlib ];
+
+  nativeBuildInputs = [ coreutils ];
+
+  buildInputs = [ zlib ] ++ pythonPath;
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  installPhase = ''
+    substituteInPlace quast_libs/bedtools/Makefile \
+      --replace "/bin/bash" "${bash}/bin/bash"
+    mkdir -p "$out/${python.sitePackages}"
+    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
+    ${python.interpreter} setup.py install \
+      --install-lib=$out/${python.sitePackages} \
+      --prefix="$out"
+  '';
+
+   postFixup = ''
+   for file in $(find $out -type f -type f -perm /0111); do
+       old_rpath=$(patchelf --print-rpath $file) && \
+       patchelf --set-rpath $old_rpath:${stdenv.cc.cc.lib}/lib $file || true
+   done
+   # Link to the master program
+   ln -s $out/bin/quast.py $out/bin/quast
+  '';
+
+  dontPatchELF = true;
+
+  # Tests need to download data files, so manual run after packaging is needed
+  doCheck = false;
+
+  meta = with stdenv.lib ; {
+    description = "Evaluates genome assemblies by computing various metrics";
+    homepage = "https://github.com/ablab/quast";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/electronics/caneda/default.nix b/pkgs/applications/science/electronics/caneda/default.nix
index 6f832013e8c..c90ceac6788 100644
--- a/pkgs/applications/science/electronics/caneda/default.nix
+++ b/pkgs/applications/science/electronics/caneda/default.nix
@@ -1,6 +1,6 @@
-{stdenv, fetchFromGitHub, cmake, qtbase, qttools, qtsvg, qwt }:
+{ mkDerivation, stdenv, fetchFromGitHub, cmake, qtbase, qttools, qtsvg, qwt }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "caneda";
   version = "0.3.1";
 
diff --git a/pkgs/applications/science/logic/verifast/default.nix b/pkgs/applications/science/logic/verifast/default.nix
index c5e8078eff2..49618d2586b 100644
--- a/pkgs/applications/science/logic/verifast/default.nix
+++ b/pkgs/applications/science/logic/verifast/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Verification for C and Java programs via separation logic";
     homepage    = "http://people.cs.kuleuven.be/~bart.jacobs/verifast/";
-    license     = stdenv.lib.licenses.msrla;
+    license     = stdenv.lib.licenses.mit;
     platforms   = [ "x86_64-linux" ];
     maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix
index 839fc8f9546..5d592c233b6 100644
--- a/pkgs/applications/science/misc/rink/default.nix
+++ b/pkgs/applications/science/misc/rink/default.nix
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with stdenv.lib; {
     description = "Unit-aware calculator";
-    homepage = "http://rink.tiffnix.com";
+    homepage = "https://rink.tiffnix.com";
     license = with licenses; [ mpl20 gpl3 ];
     maintainers = with maintainers; [ sb0 filalex77 ];
   };
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 34bdaf6bacf..e54dc785b08 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -28,7 +28,7 @@ python3Packages.buildPythonApplication rec {
   doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
 
   meta = with stdenv.lib; {
-    homepage = "http://snakemake.bitbucket.io";
+    homepage = "https://snakemake.bitbucket.io";
     license = licenses.mit;
     description = "Python-based execution environment for make-like workflows";
     longDescription = ''
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 0348d015309..c354dad8042 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.18";
+  version = "1.8.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fi4m3591wws5cq43q8aljf91mzs6i9yhn9rimhpfrskbyf9knvm";
+    sha256 = "1rbq2nm01212rp5xbl8p8kjl2mpgfppkwjsq3lnfw1v6g0m4359h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/version-management/arch/default.nix b/pkgs/applications/version-management/arch/default.nix
index 2108afc5106..d41040f49a0 100644
--- a/pkgs/applications/version-management/arch/default.nix
+++ b/pkgs/applications/version-management/arch/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "tla-1.3.5";
   
   src = fetchurl {
-    url = "ftp://ftp.gnu.org/old-gnu/gnu-arch/" + name + ".tar.gz";
+    url = "https://ftp.gnu.org/old-gnu/gnu-arch/" + name + ".tar.gz";
     sha256 = "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0";
   };
 
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 ae064cb7b5e..c073edaee7d 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
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "diff-so-fancy";
-  version = "1.2.7";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "so-fancy";
     repo = "diff-so-fancy";
     rev = "v${version}";
-    sha256 = "0y5cp236gi6h7llzai5d27086l4zz58mz1zs01r97xnnmjs9vw21";
+    sha256 = "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl";
   };
 
   # Perl is needed here for patchShebangs
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 acd09f0d0c0..597e0672073 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "0.6.4";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0na8zfvcmdy968i47x6qd1jwfaphy5h18ff7ym5sxyia9a27yhf8";
+    sha256 = "054mag8jgxkvx2f95ha10n45v4xv5lms69w76g95z18m62qhjcyl";
   };
 
-  modSha256 = "102v30wr9wmd6n20qdvgs5mp2s639pwbqqd71r8q52f42p694bi1";
+  modSha256 = "0v33x9bnwjfg4425vralnsb4i22c0g1rcmaga9911v0i7d51k0fn";
 
   buildFlagsArray = [
-    "-ldflags=-X github.com/cli/cli/command.Version=${version}"
+    "-ldflags=-s -w -X github.com/cli/cli/command.Version=${version}"
   ];
 
   subPackages = [ "cmd/gh" ];
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 aaf22c940cb..32350fa538d 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
@@ -1,23 +1,27 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, makeWrapper, openssl, git, libiconv, Security }:
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, makeWrapper, openssl, git, libiconv, Security, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "git-gone";
-  version = "0.3.0";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05wlng563p9iy0ky3z23a4jakcix887fb45r7j2mk0fp5ykdjmzh";
+    sha256 = "0zc4cb1dg30np5yc4ymkr894qs2bk0r123i302md00niayk4njyd";
   };
 
-  cargoSha256 = "1scp9rzn59akxsf9p48j1zq6clbwdyasnyi4j28nj03ghvdv2i33";
+  cargoSha256 = "1d892889ml7sqyxzmjipq5fvizb4abqhmmn450qm7yam9fn5q5wf";
 
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
+  nativeBuildInputs = [ pkgconfig makeWrapper installShellFiles ];
 
   buildInputs = [ openssl ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
+  postInstall = ''
+    installManPage git-gone.1
+  '';
+
   postFixup = ''
     wrapProgram $out/bin/git-gone --prefix PATH : "${stdenv.lib.makeBinPath [ git ]}"
   '';
diff --git a/pkgs/applications/video/bomi/default.nix b/pkgs/applications/video/bomi/default.nix
index 7ba37936c68..d812ac48874 100644
--- a/pkgs/applications/video/bomi/default.nix
+++ b/pkgs/applications/video/bomi/default.nix
@@ -1,7 +1,7 @@
-{ config, stdenv, fetchFromGitHub
+{ mkDerivation, config, stdenv, fetchFromGitHub
 , fetchpatch, pkgconfig, perl, python, which
 , libX11, libxcb, libGLU, libGL
-, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake, makeWrapper
+, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake
 , libchardet
 , ffmpeg
 
@@ -29,7 +29,7 @@ assert pulseSupport -> libpulseaudio != null;
 assert cddaSupport -> libcdda != null;
 assert youtubeSupport -> youtube-dl != null;
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "bomi";
   version = "0.9.11";
 
@@ -90,8 +90,9 @@ stdenv.mkDerivation rec {
     patchShebangs build-mpv
   '';
 
+  dontWrapQtApps = true;
   postInstall = ''
-    wrapProgram $out/bin/bomi \
+    wrapQtApp $out/bin/bomi \
       ${optionalString youtubeSupport "--prefix PATH ':' '${youtube-dl}/bin'"}
   '';
 
@@ -105,7 +106,7 @@ stdenv.mkDerivation rec {
                    ++ optional cddaSupport "--enable-cdda"
                    ;
 
-  nativeBuildInputs = [ makeWrapper pkgconfig perl python which qttools qmake ];
+  nativeBuildInputs = [ pkgconfig perl python which qttools qmake ];
 
   meta = with stdenv.lib; {
     description = "Powerful and easy-to-use multimedia player";
diff --git a/pkgs/applications/video/qmediathekview/default.nix b/pkgs/applications/video/qmediathekview/default.nix
index 16006668846..7556727a80d 100644
--- a/pkgs/applications/video/qmediathekview/default.nix
+++ b/pkgs/applications/video/qmediathekview/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qtbase, qttools, xz, boost, qmake, pkgconfig }:
+{ mkDerivation, stdenv, fetchFromGitHub, qtbase, qttools, xz, boost, qmake, pkgconfig }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "QMediathekView";
   version = "2019-01-06";
 
diff --git a/pkgs/applications/video/qstopmotion/default.nix b/pkgs/applications/video/qstopmotion/default.nix
index e2243797a3b..4a6d2a05a67 100644
--- a/pkgs/applications/video/qstopmotion/default.nix
+++ b/pkgs/applications/video/qstopmotion/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, qt5, ffmpeg, guvcview, cmake, ninja, libxml2
+{ mkDerivation, stdenv, fetchurl, qt5, ffmpeg, guvcview, cmake, ninja, libxml2
 , gettext, pkgconfig, libgphoto2, gphoto2, v4l-utils, libv4l, pcre
 , qwt, extra-cmake-modules }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "qstopmotion";
   version = "2.4.1";
 
diff --git a/pkgs/applications/virtualization/aqemu/default.nix b/pkgs/applications/virtualization/aqemu/default.nix
index f98b8eefd78..9177f264502 100644
--- a/pkgs/applications/virtualization/aqemu/default.nix
+++ b/pkgs/applications/virtualization/aqemu/default.nix
@@ -1,7 +1,7 @@
-{ cmake, fetchFromGitHub, libvncserver, qemu, qtbase, stdenv
+{ mkDerivation, cmake, fetchFromGitHub, libvncserver, qemu, qtbase, stdenv
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "aqemu";
   version = "0.9.2";
 
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 3ee467cd290..74a316ef52a 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -57,7 +57,7 @@ in buildGoPackage rec {
     description = ''Open Container Initiative-based implementation of the
                     Kubernetes Container Runtime Interface'';
     license = licenses.asl20;
-    maintainers = with maintainers; [ saschagrunert ];
+    maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/crosvm/default.nix b/pkgs/applications/virtualization/crosvm/default.nix
index 28614efa7f3..38ce277bf3f 100644
--- a/pkgs/applications/virtualization/crosvm/default.nix
+++ b/pkgs/applications/virtualization/crosvm/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, rustPlatform, fetchgit, runCommand, symlinkJoin
-, pkgconfig, minijail, dtc, libusb1, libcap
+{ stdenv, lib, rustPlatform, fetchgit, runCommand, symlinkJoin
+, pkgconfig, minijail, dtc, libusb1, libcap, linux
 }:
 
 let
@@ -53,7 +53,7 @@ in
       ./default-seccomp-policy-dir.diff
     ];
 
-    cargoSha256 = "1s9nfgfqk140hg08i0xzylnrgrx84dqss0vnvhxnydwy9q03nk7r";
+    cargoSha256 = "0lhivwvdihslwp81i3sa5q88p5hr83bzkvklrcgf6x73arwk8kdz";
 
     nativeBuildInputs = [ pkgconfig ];
 
@@ -73,13 +73,17 @@ in
       cp seccomp/${arch}/* $out/share/policy/
     '';
 
+    CROSVM_CARGO_TEST_KERNEL_BINARY =
+      lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform)
+        "${linux}/${stdenv.hostPlatform.platform.kernelTarget}";
+
     passthru = {
       inherit adhdSrc;
       src = crosvmSrc;
       updateScript = ./update.py;
     };
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "A secure virtual machine monitor for KVM";
       homepage = "https://chromium.googlesource.com/chromiumos/platform/crosvm/";
       maintainers = with maintainers; [ qyliss ];
diff --git a/pkgs/applications/virtualization/crosvm/update.py b/pkgs/applications/virtualization/crosvm/update.py
index 280d6ec1811..29e68b9f579 100755
--- a/pkgs/applications/virtualization/crosvm/update.py
+++ b/pkgs/applications/virtualization/crosvm/update.py
@@ -17,7 +17,7 @@ components = ['chromiumos/platform/crosvm', 'chromiumos/third_party/adhd']
 
 git_root = 'https://chromium.googlesource.com/'
 manifest_versions = f'{git_root}chromiumos/manifest-versions'
-buildspecs_url = f'{manifest_versions}/+/refs/heads/master/paladin/buildspecs/'
+buildspecs_url = f'{manifest_versions}/+/refs/heads/master/full/buildspecs/'
 
 # CrOS version numbers look like this:
 # [<chrome-major-version>.]<tip-build>.<branch-build>.<branch-branch-build>
diff --git a/pkgs/applications/virtualization/crosvm/upstream-info.json b/pkgs/applications/virtualization/crosvm/upstream-info.json
index 690eca38bff..bb9cc8841b4 100644
--- a/pkgs/applications/virtualization/crosvm/upstream-info.json
+++ b/pkgs/applications/virtualization/crosvm/upstream-info.json
@@ -1,19 +1,23 @@
 {
-  "version": "79.12607.0.0-rc4",
+  "version": "81.12871.0.0-rc1",
   "components": {
     "chromiumos/platform/crosvm": {
       "url": "https://chromium.googlesource.com/chromiumos/platform/crosvm",
-      "rev": "cfb7db44eb9e5a0bca9a22bfb985252ef74ab251",
-      "date": "2019-10-17T23:22:08+00:00",
-      "sha256": "0gm1ggyzh9qfizm36jmh71c3anygxj1840cm94h71kzg9kiw0330",
-      "fetchSubmodules": false
+      "rev": "8b8c01e1ad31718932491e4aee63f56109a138e2",
+      "date": "2020-01-25T02:28:10+00:00",
+      "sha256": "1qmf1k06pwynh15c3nr9m6v90z2pkk930xniwvlvbvnazrk4rllg",
+      "fetchSubmodules": false,
+      "deepClone": false,
+      "leaveDotGit": false
     },
     "chromiumos/third_party/adhd": {
       "url": "https://chromium.googlesource.com/chromiumos/third_party/adhd",
-      "rev": "a8df1c52bde3bfd2aebc1d7adcd6f195eb212cb1",
-      "date": "2019-10-17T18:53:18+00:00",
-      "sha256": "1hyvnvwr5ka9zw4h7hhl6fpsfl2acp3zy4wr5qrw8s1cn8ljr9vy",
-      "fetchSubmodules": false
+      "rev": "f361d5b02623274723bff251dafa1e2a2887b013",
+      "date": "2020-01-23T18:37:46+00:00",
+      "sha256": "1p8iwjwgmcgmzri03ik2jaid8l0ch0bzn6z9z64dix1hlrvrlliw",
+      "fetchSubmodules": false,
+      "deepClone": false,
+      "leaveDotGit": false
     }
   }
 }
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 5108c272a1c..2c1ad0b4297 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -9,6 +9,7 @@
 , libseccomp
 , systemd
 , go-md2man
+, nixosTests
 }:
 
 buildGoPackage rec {
@@ -45,6 +46,8 @@ buildGoPackage rec {
     MANDIR=$man/share/man make install.man
   '';
 
+  passthru.tests.podman = nixosTests.podman;
+
   meta = with stdenv.lib; {
     homepage = "https://podman.io/";
     description = "A program for managing pods, containers and container images";
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 9d784d88a4f..df7b81a43c8 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -19,10 +19,9 @@ with stdenv.lib;
 let
   python = python3;
   buildType = "release";
-  # Remember to change the extpackRev and version in extpack.nix and
-  # guest-additions/default.nix as well.
-  main = "59f8f5774473f593e3eb5940e2a337e0674bcd9854164b2578fd43f896260c99";
-  version = "6.1.4";
+  # 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";
 
   iasl' = iasl.overrideAttrs (old: rec {
     inherit (old) pname;
@@ -39,7 +38,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = main;
+    sha256 = "b031c30d770f28c5f884071ad933e8c1f83e65b93aaba03a4012077c1d90a54f";
   };
 
   outputs = [ "out" "modsrc" ];
@@ -108,6 +107,10 @@ in stdenv.mkDerivation {
   postPatch = ''
     sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
       src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+  '' + optionalString headless ''
+    # Fix compile error in version 6.1.6
+    substituteInPlace src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc-x11-stubs.cpp \
+      --replace PSHCLFORMATDATA PSHCLFORMATS
   '';
 
   # first line: ugly hack, and it isn't yet clear why it's a problem
@@ -216,6 +219,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit version;       # for guest additions
     inherit extensionPack; # for inclusion in profile to prevent gc
+    updateScript = ./update.sh;
   };
 
   meta = {
diff --git a/pkgs/applications/virtualization/virtualbox/extpack.nix b/pkgs/applications/virtualization/virtualbox/extpack.nix
index d50d3b59e24..c9918b1cedf 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 = "3b73798d776ff223ea8025b1a45001762f8d4e5bcd1ea61449773c1249935800";
+    let value = "80b96b4b51a502141f6a8981f1493ade08a00762622c39e48319e5b122119bf3";
     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 fdb393a94eb..4275bc0542e 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "e2846a7576cce1b92a7c0744f41eaac750248d6e31dfca5c45d5766648b394c7";
+    sha256 = "bcde4691dea7de93b65a10a43dda2b8f52e570f820992ad281c9bb5c8dede181";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/pkgs/applications/virtualization/virtualbox/update.py b/pkgs/applications/virtualization/virtualbox/update.py
deleted file mode 100755
index 6e8bfd5c825..00000000000
--- a/pkgs/applications/virtualization/virtualbox/update.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i python3 -p python3
-
-import os
-import re
-import json
-import urllib.request
-
-from distutils.version import LooseVersion
-
-UPSTREAM_INFO_FILE = os.path.join(
-    os.path.dirname(os.path.abspath(__file__)),
-    "upstream-info.json"
-)
-
-
-def fetch_latest_version():
-    url = "http://download.virtualbox.org/virtualbox/LATEST.TXT"
-    return urllib.request.urlopen(url).read().strip().decode()
-
-
-def load_upstream_info():
-    try:
-        with open(UPSTREAM_INFO_FILE, 'r') as fp:
-            return json.load(fp)
-    except FileNotFoundError:
-        return {'version': "0"}
-
-
-def save_upstream_info(contents):
-    remark = "Generated using update.py from the same directory."
-    contents['__NOTE'] = remark
-    data = json.dumps(contents, indent=2, sort_keys=True)
-    with open(UPSTREAM_INFO_FILE, 'w') as fp:
-        fp.write(data + "\n")
-
-
-def fetch_file_table(version):
-    url = "http://download.virtualbox.org/virtualbox/{}/SHA256SUMS"
-    url = url.format(version)
-    result = {}
-    for line in urllib.request.urlopen(url):
-        sha, name = line.rstrip().split()
-        result[name.lstrip(b'*').decode()] = sha.decode()
-    return result
-
-
-def update_to_version(version):
-    extpack_start = 'Oracle_VM_VirtualBox_Extension_Pack-'
-    version_re = version.replace('.', '\\.')
-    attribute_map = {
-        'extpack': r'^' + extpack_start + r'[^-]+-[^.]+.vbox-extpack$',
-        'extpackRev': r'^' + extpack_start + r'[^-]+-([^.]+).vbox-extpack$',
-        'main': r'^VirtualBox-' + version_re + r'.tar.bz2$',
-        'guest': r'^VBoxGuestAdditions_' + version_re + r'.iso$',
-    }
-    table = fetch_file_table(version)
-    new_attrs = {'version': version}
-    for attr, searchexpr in attribute_map.items():
-        result = [re.search(searchexpr, key) for key in table.keys()]
-        filtered = filter(lambda m: m is not None, result)
-        found = [m.groups()[0] if len(m.groups()) > 0 else table[m.group(0)]
-                 for m in filtered if m is not None]
-
-        if len(found) == 0:
-            msg = "No package found for attribute {}".format(attr)
-            raise AssertionError(msg)
-        elif len(found) != 1:
-            msg = "More than one package found for attribute {}: ".format(attr)
-            msg += ', '.join(found)
-            raise AssertionError(msg)
-        else:
-            new_attrs[attr] = found[0]
-    return new_attrs
-
-
-info = load_upstream_info()
-latest = fetch_latest_version()
-if LooseVersion(info['version']) < LooseVersion(latest):
-    print("Updating to version {}...".format(latest), end="", flush=True)
-    new_attrs = update_to_version(latest)
-    save_upstream_info(new_attrs)
-    print(" done.")
-else:
-    print("Version {} is already the latest one.".format(info['version']))
diff --git a/pkgs/applications/virtualization/virtualbox/update.sh b/pkgs/applications/virtualization/virtualbox/update.sh
new file mode 100755
index 00000000000..fcd02ae8a27
--- /dev/null
+++ b/pkgs/applications/virtualization/virtualbox/update.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
+
+set -xeuo pipefail
+
+nixpkgs="$(git rev-parse --show-toplevel)"
+
+attr=virtualbox
+oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; $attr.version or (builtins.parseDrvName $attr.name).version" | tr -d '"')"
+latestVersion="$(curl -sS https://download.virtualbox.org/virtualbox/LATEST.TXT)"
+
+function fileShaSum() {
+  echo "$1" | grep -w $2 | cut -f1 -d' '
+}
+function oldHash() {
+  nix-instantiate --eval --strict -A "$1.drvAttrs.outputHash" | tr -d '"'
+}
+function nixFile() {
+  nix-instantiate --eval --strict -A "${1}.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/'
+}
+
+if [ ! "$oldVersion" = "$latestVersion" ]; then
+  shaSums=$(curl -sS https://download.virtualbox.org/virtualbox/$latestVersion/SHA256SUMS)
+
+  virtualBoxShaSum=$(fileShaSum "$shaSums" "VirtualBox-$latestVersion.tar.bz2")
+  extpackShaSum=$(fileShaSum "$shaSums" "Oracle_VM_VirtualBox_Extension_Pack-$latestVersion.vbox-extpack")
+  guestAdditionsShaSum=$(fileShaSum "$shaSums" "*VBoxGuestAdditions_$latestVersion.iso")
+
+  virtualboxNixFile=$(nixFile ${attr})
+  extpackNixFile=$(nixFile ${attr}Extpack)
+  guestAdditionsNixFile=$(nixFile linuxPackages.${attr}GuestAdditions)
+
+  extpackOldShaSum=$(oldHash ${attr}Extpack)
+  guestAdditionsOldShaSum=$(oldHash linuxPackages.${attr}GuestAdditions.src)
+
+  update-source-version $attr $latestVersion $virtualBoxShaSum
+  sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile
+  sed -i -e 's|sha256 = "'$guestAdditionsOldShaSum'"|sha256 = "'$guestAdditionsShaSum'"|' $guestAdditionsNixFile
+
+  git add $virtualboxNixFile $extpackNixFile $guestAdditionsNixFile
+  git commit -m "$attr: ${oldVersion} -> ${latestVersion}"
+else
+  echo "$attr is already up-to-date"
+fi
diff --git a/pkgs/applications/window-managers/sway/wrapper.nix b/pkgs/applications/window-managers/sway/wrapper.nix
index 7c59b8b7cde..3e12e3fcc55 100644
--- a/pkgs/applications/window-managers/sway/wrapper.nix
+++ b/pkgs/applications/window-managers/sway/wrapper.nix
@@ -14,8 +14,8 @@ let
   baseWrapper = writeShellScriptBin "sway" ''
      set -o errexit
      if [ ! "$_SWAY_WRAPPER_ALREADY_EXECUTED" ]; then
-       export _SWAY_WRAPPER_ALREADY_EXECUTED=1
        ${extraSessionCommands}
+       export _SWAY_WRAPPER_ALREADY_EXECUTED=1
      fi
      if [ "$DBUS_SESSION_BUS_ADDRESS" ]; then
        export DBUS_SESSION_BUS_ADDRESS
diff --git a/pkgs/build-support/alternatives/blas/default.nix b/pkgs/build-support/alternatives/blas/default.nix
index 8bba49b4550..bdee6688a74 100644
--- a/pkgs/build-support/alternatives/blas/default.nix
+++ b/pkgs/build-support/alternatives/blas/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
   installPhase = (''
   mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
 
-  libblas="${lib.getLib blasProvider}/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}"
+  libblas="${lib.getLib blasProvider}/lib/libblas${canonicalExtension}"
 
   if ! [ -e "$libblas" ]; then
     echo "$libblas does not exist, ${blasProvider.name} does not provide libblas."
@@ -100,7 +100,7 @@ Libs: -L$out/lib -lblas
 Cflags: -I$dev/include
 EOF
 
-  libcblas="${lib.getLib blasProvider}/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}"
+  libcblas="${lib.getLib blasProvider}/lib/libcblas${canonicalExtension}"
 
   if ! [ -e "$libcblas" ]; then
     echo "$libcblas does not exist, ${blasProvider.name} does not provide libcblas."
diff --git a/pkgs/build-support/alternatives/lapack/default.nix b/pkgs/build-support/alternatives/lapack/default.nix
index e260ad1bd93..5a19916f83e 100644
--- a/pkgs/build-support/alternatives/lapack/default.nix
+++ b/pkgs/build-support/alternatives/lapack/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   installPhase = (''
   mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
 
-  liblapack="${lib.getLib lapackProvider}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}"
+  liblapack="${lib.getLib lapackProvider}/lib/liblapack${canonicalExtension}"
 
   if ! [ -e "$liblapack" ]; then
     echo "$liblapack does not exist, ${lapackProvider.name} does not provide liblapack."
@@ -74,7 +74,7 @@ Cflags: -I$dev/include
 Libs: -L$out/lib -llapack
 EOF
 
-  liblapacke="${lib.getLib lapackProvider}/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}"
+  liblapacke="${lib.getLib lapackProvider}/lib/liblapacke${canonicalExtension}"
 
   if ! [ -e "$liblapacke" ]; then
     echo "$liblapacke does not exist, ${lapackProvider.name} does not provide liblapacke."
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index c67f5845135..3c81a4ece65 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -4,7 +4,8 @@ let
 
   runCommand' = runLocal: stdenv: name: env: buildCommand:
     stdenv.mkDerivation ({
-      inherit name buildCommand;
+      name = lib.strings.sanitizeDerivationName name;
+      inherit buildCommand;
       passAsFile = [ "buildCommand" ];
     }
     // (lib.optionalAttrs runLocal {
diff --git a/pkgs/common-updater/scripts.nix b/pkgs/common-updater/scripts.nix
index 655924e5f28..739f44387b3 100644
--- a/pkgs/common-updater/scripts.nix
+++ b/pkgs/common-updater/scripts.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix, git }:
+{ stdenv, makeWrapper, coreutils, gnused, gnugrep, diffutils, nix, git, jq }:
 
 stdenv.mkDerivation {
   name = "common-updater-scripts";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     cp ${./scripts}/* $out/bin
 
     for f in $out/bin/*; do
-      wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils git ]}
+      wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils gnused gnugrep nix diffutils git jq ]}
     done
   '';
 }
diff --git a/pkgs/common-updater/scripts/mark-broken b/pkgs/common-updater/scripts/mark-broken
new file mode 100755
index 00000000000..d128d0d458b
--- /dev/null
+++ b/pkgs/common-updater/scripts/mark-broken
@@ -0,0 +1,86 @@
+#!/usr/bin/env bash
+set -e
+
+scriptName=mark-broken # do not use the .wrapped name
+
+die() {
+    echo "$scriptName: error: $1" >&2
+    exit 1
+}
+
+usage() {
+    echo "Usage: $scriptName <attr> [--new-value=<new-value>]"
+}
+
+args=()
+
+for arg in "$@"; do
+    case $arg in
+        --new-value=*)
+            newValue="${arg#*=}"
+        ;;
+        --help)
+            usage
+            exit 0
+        ;;
+        --*)
+            echo "$scriptName: Unknown argument: $arg"
+            usage
+            exit 1
+        ;;
+        *)
+            args["${#args[*]}"]=$arg
+        ;;
+    esac
+done
+
+attr=${args[0]}
+
+if (( "${#args[*]}" < 1 )); then
+    echo "$scriptName: Too few arguments"
+    usage
+    exit 1
+fi
+
+if (( "${#args[*]}" > 1 )); then
+    echo "$scriptName: Too many arguments"
+    usage
+    exit 1
+fi
+
+if [ -z $newValue ]; then
+  newValue="true"
+fi
+
+nixFile=$(nix-instantiate --eval --json -E "with import ./. {}; (builtins.unsafeGetAttrPos \"description\" $attr.meta).file" | jq -r .)
+if [[ ! -f "$nixFile" ]]; then
+    die "Couldn't evaluate 'builtins.unsafeGetAttrPos \"description\" $attr.meta' to locate the .nix file!"
+fi
+
+# Insert broken attribute
+sed -i.bak "$nixFile" -r \
+  -e "/^\s*broken\s*=.*$/d" \
+  -e "s/(\s*)meta\s*=.*\{/&\n\1  broken = $newValue;/"
+
+if cmp -s "$nixFile" "$nixFile.bak"; then
+    mv "$nixFile.bak" "$nixFile"
+    die "Failed to mark the package as broken! Does it have a meta attribute?"
+fi
+
+if [[ "$newValue" == "true" ]]; then
+    # broken should evaluate to true in any case now
+    markedSuccessfully=$(nix-instantiate --eval -E "with import ./. {}; $attr.meta.broken" || true)
+    if [[ ! "$markedSuccessfully" == "true" ]]; then
+        mv "$nixFile.bak" "$nixFile"
+        die "Couldn't verify the broken attribute to be set correctly, restoring backup!"
+    fi
+else
+    # we can not check if broken evaluates to the correct value, but we can check that it does evaluate
+    if ! nix-instantiate --eval -E "with import ./. {}; $attr.meta.broken" >/dev/null; then
+        mv "$nixFile.bak" "$nixFile"
+        die "Couldn't verify the broken attribute to be set correctly, restoring backup!"
+    fi
+fi
+
+rm -f "$nixFile.bak"
+rm -f "$attr.fetchlog"
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index 4e464f37022..0e835cbedea 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -1,4 +1,4 @@
-# Based upon https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/tree/454acad50ba584d9602ccd4238fc5e585abc15c9
+# Based upon https://src.fedoraproject.org/rpms/twitter-twemoji-fonts
 # The main difference is that we use “Twitter Color Emoji” name (which is recognized by upstream fontconfig)
 
 { stdenv
@@ -15,14 +15,14 @@
 }:
 
 let
-  version = "12.1.2";
+  version = "12.1.5";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
     owner = "twitter";
     repo = "twemoji";
     rev = "v${version}";
-    sha256 = "0vzmlp83vnk4njcfkn03jcc1vkg2rf12zf5kj3p3a373xr4ds1zn";
+    hash = "sha256-qb3bLiUgtA8QQ13u928kvM+3qwmQpyjUk0EPKja1kSk=";
   };
 
 in
@@ -54,10 +54,10 @@ stdenv.mkDerivation rec {
   ];
 
   patches = [
-    # ImageMagick -> GrahphicsMagick
+    # ImageMagick -> GraphicsMagick
     (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/3bc176c10ced2824fe03da5ff561e22a36bf8ccd/f/noto-emoji-use-gm.patch";
-      sha256 = "0yfmfzaaiq5163c06172g4r734aysiqyv1s28siv642vqzsqh4i2";
+      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
+      sha256 = "sha256-kyJwT1SKS1vnXxvPTiIMK6TRHMp1ZOSlb6rodL4Jbxs=";
     })
   ];
 
@@ -114,7 +114,9 @@ stdenv.mkDerivation rec {
     # In twemoji source
     ## Artwork is Creative Commons Attribution 4.0 International
     ## Non-artwork is MIT
+    # In Fedora twitter-twemoji-fonts source
+    ## spec files are MIT: https://fedoraproject.org/wiki/Licensing:Main#License_of_Fedora_SPEC_Files
     license = with licenses; [ asl20 ofl cc-by-40 mit ];
-    maintainers = with maintainers; [ jtojnar ];
+    maintainers = with maintainers; [ jtojnar emily ];
   };
 }
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 1243d5fa5cb..a735d9f446d 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.1";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0p22jxcagamvp08xfglz4cz1sp8w4p101npw0ggrkhh7vm8yb9bh";
+    sha256 = "1lkb0m8ys13sy3b6c1kj3cqrqf5d1dqvhbp8spz8v9yjv3d7z3r6";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
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 d508222188b..3784f109900 100644
--- a/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/dash-to-dock/default.nix
@@ -1,27 +1,34 @@
-{ stdenv, fetchFromGitHub, glib, gettext }:
+{ stdenv
+, fetchFromGitHub
+, glib
+, gettext
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-dock-unstable";
-  version = "2020-03-19";
+  version = "2020-04-20";
 
   src = fetchFromGitHub {
     owner = "micheleg";
     repo = "dash-to-dock";
     # rev = "extensions.gnome.org-v" + version;
-    rev = "8c94a8d6db47ebc1273e690f4e0ba5e592f7f268";
-    sha256 = "7nNfxAINqOIJCgYXYaPck2EJ1IOmzt6AkfDFknZ8GaI=";
+    rev = "1788f31b049b622f78d0e65c56bef76169022ca9";
+    sha256 = "M3tlRbQ1PjKvNrKNtg0+CBEtzLSFQYauXJXQojdkHuk=";
   };
 
   nativeBuildInputs = [
-    glib gettext
+    glib
+    gettext
   ];
 
-  makeFlags = [ "INSTALLBASE=$(out)/share/gnome-shell/extensions" ];
+  makeFlags = [
+    "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
+  ];
 
   meta = with stdenv.lib; {
     description = "A dock for the Gnome Shell";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ eperuffo ];
     homepage = "https://micheleg.github.io/dash-to-dock/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ eperuffo jtojnar ];
   };
 }
diff --git a/pkgs/desktops/gnome-3/find-latest-version.py b/pkgs/desktops/gnome-3/find-latest-version.py
index b0359f79969..ad80af24bcb 100644
--- a/pkgs/desktops/gnome-3/find-latest-version.py
+++ b/pkgs/desktops/gnome-3/find-latest-version.py
@@ -1,10 +1,13 @@
 import argparse
+import math
 import json
 import requests
 import sys
 
+
 def version_to_list(version):
-    return list(map(int, version.split('.')))
+    return list(map(int, version.split(".")))
+
 
 def odd_unstable(version_str, selected):
     version = version_to_list(version_str)
@@ -14,47 +17,58 @@ def odd_unstable(version_str, selected):
     even = version[1] % 2 == 0
     prerelease = (version[1] >= 90 and version[1] < 100) or (version[1] >= 900 and version[1] < 1000)
     stable = even and not prerelease
-    if selected == 'stable':
+    if selected == "stable":
         return stable
     else:
         return True
 
+
 def no_policy(version, selected):
     return True
 
+
 version_policies = {
-    'odd-unstable': odd_unstable,
-    'none': no_policy,
+    "odd-unstable": odd_unstable,
+    "none": no_policy,
 }
 
-def make_version_policy(version_predicate, selected):
-    return lambda version: version_predicate(version, selected)
 
-parser = argparse.ArgumentParser(description='Find latest version for a GNOME package by crawling their release server.')
-parser.add_argument('package-name', help='Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.')
-parser.add_argument('version-policy', help='Policy determining which versions are considered stable. For most GNOME packages, odd minor versions are unstable but there are exceptions.', choices=version_policies.keys(), nargs='?', default='odd-unstable')
-parser.add_argument('requested-release', help='Most of the time, we will want to update to stable version but sometimes it is useful to test.', choices=['stable', 'unstable'], nargs='?', default='stable')
+def make_version_policy(version_predicate, selected, upper_bound):
+    if not upper_bound:
+        upper_bound = [math.inf, math.inf]
+    else:
+        upper_bound = version_to_list(upper_bound)
+
+    return lambda version: version_predicate(version, selected) and version_to_list(version) < upper_bound
+
+
+parser = argparse.ArgumentParser(description="Find latest version for a GNOME package by crawling their release server.")
+parser.add_argument("package-name", help="Name of the directory in https://ftp.gnome.org/pub/GNOME/sources/ containing the package.")
+parser.add_argument("version-policy", help="Policy determining which versions are considered stable. For most GNOME packages, odd minor versions are unstable but there are exceptions.", choices=version_policies.keys(), nargs="?", default="odd-unstable")
+parser.add_argument("requested-release", help="Most of the time, we will want to update to stable version but sometimes it is useful to test.", choices=["stable", "unstable"], nargs="?", default="stable")
+parser.add_argument("--upper-bound", dest="upper-bound", help="Only look for versions older than this one (useful for pinning dependencies).")
 
 
-if __name__ == '__main__':
+if __name__ == "__main__":
     args = parser.parse_args()
 
-    package_name = getattr(args, 'package-name')
-    requested_release = getattr(args, 'requested-release')
-    version_predicate = version_policies[getattr(args, 'version-policy')]
-    version_policy = make_version_policy(version_predicate, requested_release)
+    package_name = getattr(args, "package-name")
+    requested_release = getattr(args, "requested-release")
+    upper_bound = getattr(args, "upper-bound")
+    version_predicate = version_policies[getattr(args, "version-policy")]
+    version_policy = make_version_policy(version_predicate, requested_release, upper_bound)
 
     # The structure of cache.json: https://gitlab.gnome.org/Infrastructure/sysadmin-bin/blob/master/ftpadmin#L762
-    cache = json.loads(requests.get('https://ftp.gnome.org/pub/GNOME/sources/{}/cache.json'.format(package_name)).text)
+    cache = json.loads(requests.get(f"https://ftp.gnome.org/pub/GNOME/sources/{package_name}/cache.json").text)
     if type(cache) != list or cache[0] != 4:
-        print('Unknown format of cache.json file.', file=sys.stderr)
+        print("Unknown format of cache.json file.", file=sys.stderr)
         sys.exit(1)
 
     versions = cache[2][package_name]
     versions = sorted(filter(version_policy, versions), key=version_to_list)
 
     if len(versions) == 0:
-        print('No versions matched.', file=sys.stderr)
+        print("No versions matched.", file=sys.stderr)
         sys.exit(1)
 
     print(versions[-1])
diff --git a/pkgs/desktops/gnome-3/update.nix b/pkgs/desktops/gnome-3/update.nix
index f42b6723950..555504086a4 100644
--- a/pkgs/desktops/gnome-3/update.nix
+++ b/pkgs/desktops/gnome-3/update.nix
@@ -1,8 +1,18 @@
-{ stdenv, lib, writeScript, python3, common-updater-scripts }:
-{ packageName, attrPath ? packageName, versionPolicy ? "odd-unstable" }:
+{ stdenv, pkgs, lib, writeScript, python3, common-updater-scripts }:
+{ packageName, attrPath ? packageName, versionPolicy ? "odd-unstable", freeze ? false }:
 
 let
   python = python3.withPackages (p: [ p.requests ]);
+  upperBoundFlag =
+    let
+      package = lib.getAttrFromPath (lib.splitString "." attrPath) pkgs;
+      packageVersion = lib.getVersion package;
+      versionComponents = lib.versions.splitVersion packageVersion;
+      minorVersion = lib.versions.minor packageVersion;
+      minorAvailable = builtins.length versionComponents > 1 && builtins.match "[0-9]+" minorVersion != null;
+      nextMinor = builtins.fromJSON minorVersion + 1;
+      upperBound = "${lib.versions.major packageVersion}.${builtins.toString nextMinor}";
+    in lib.optionalString (minorAvailable && freeze) ''--upper-bound="${upperBound}"'';
   updateScript = writeScript "gnome-update-script" ''
     #!${stdenv.shell}
     set -o errexit
@@ -10,7 +20,7 @@ let
     attr_path="$2"
     version_policy="$3"
     PATH=${lib.makeBinPath [ common-updater-scripts python ]}
-    latest_tag=$(python "${./find-latest-version.py}" "$package_name" "$version_policy" "stable")
+    latest_tag=$(python "${./find-latest-version.py}" "$package_name" "$version_policy" "stable" ${upperBoundFlag})
     update-source-version "$attr_path" "$latest_tag"
   '';
 in [ updateScript packageName attrPath versionPolicy ]
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 c4487525954..a70fee63094 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
-  version = "2.8.3";
+  version = "2.8.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ypyppxx51l3r3fgxrvjdwnz33lpbfh1bf27fww9fx9520wixnx8";
+    sha256 = "1nnsv745inbdqk3xnbcaqmj87vr3kzh5hazbh8v3ib33cpi7wy88";
   };
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 432f7c3ac5f..64c4509280a 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -103,6 +103,9 @@ stdenv.mkDerivation rec {
 
       # for the compositor
       --prefix PATH : "$out/bin"
+
+      # the theme is hardcoded
+      --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
     )
   '';
 
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch
new file mode 100644
index 00000000000..c4d6d8574a5
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/207.patch
@@ -0,0 +1,4726 @@
+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 ed70687e050..c6a0e2f7779 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, fetchFromGitHub 
+, fetchFromGitHub
 , pantheon
 , pkgconfig
 , meson
@@ -28,6 +28,15 @@ stdenv.mkDerivation rec {
     sha256 = "0a0pqrpmrdd5pch30lizr9righlc7165z7krmnaxrzd0fvfkbr2h";
   };
 
+  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 {
       attrPath = "pantheon.${pname}";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 64ebee4f13d..ff9925c5357 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -65,6 +65,13 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      # this theme is required
+      --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share"
+    )
+  '';
+
   meta = with stdenv.lib; {
     description = "The extensible top panel for Pantheon";
     longDescription = ''
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index a1b3d736b99..069769dbd5e 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -4,7 +4,7 @@
 let
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
 
-  hsPkgs = haskell.packages.ghc881.override {
+  hsPkgs = haskell.packages.ghc883.override {
     overrides = self: super: with haskell.lib;
       let elmPkgs = rec {
             elm = overrideCabal (self.callPackage ./packages/elm.nix { }) (drv: {
@@ -28,7 +28,7 @@ let
             `package/nix/build.sh`
             */
             elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
-              # GHC 8.8.1 support
+              # GHC 8.8.3 support
               # https://github.com/avh4/elm-format/pull/640
               patches = [(
                 fetchpatch {
@@ -39,7 +39,7 @@ let
               # Tests are failing after upgrade to ghc881.
               # Cause is probably just a minor change in stdout output
               # see https://github.com/avh4/elm-format/pull/640
-              doCheck = false;
+              # doCheck = false;
               jailbreak = true;
             }));
 
diff --git a/pkgs/development/compilers/elm/packages/elm-instrument.nix b/pkgs/development/compilers/elm/packages/elm-instrument.nix
index 54077994fbd..4d7efcf1083 100644
--- a/pkgs/development/compilers/elm/packages/elm-instrument.nix
+++ b/pkgs/development/compilers/elm/packages/elm-instrument.nix
@@ -28,7 +28,7 @@ mkDerivation {
     quickcheck-io split tasty tasty-golden tasty-hunit tasty-quickcheck
     text
   ];
-  homepage = "http://elm-lang.org";
+  homepage = "https://elm-lang.org";
   description = "Instrumentation library for Elm";
   license = stdenv.lib.licenses.bsd3;
 }
diff --git a/pkgs/development/compilers/ghc/8.10.1.nix b/pkgs/development/compilers/ghc/8.10.1.nix
index 01e10b04d27..cacff5bfcfd 100644
--- a/pkgs/development/compilers/ghc/8.10.1.nix
+++ b/pkgs/development/compilers/ghc/8.10.1.nix
@@ -73,7 +73,7 @@ let
   '';
 
   # Splicer will pull out correct variations
-  libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
+  libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
     ++ [libffi]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
@@ -160,10 +160,10 @@ stdenv.mkDerivation (rec {
     "--with-system-libffi"
     "--with-ffi-includes=${targetPackages.libffi.dev}/include"
     "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
     "--with-gmp-includes=${targetPackages.gmp.dev}/include"
     "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+  ] ++ 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) [
@@ -176,7 +176,7 @@ stdenv.mkDerivation (rec {
     "--disable-large-address-space"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # 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.
diff --git a/pkgs/development/compilers/ghc/8.4.4.nix b/pkgs/development/compilers/ghc/8.4.4.nix
index e63f8207830..adfd20531ab 100644
--- a/pkgs/development/compilers/ghc/8.4.4.nix
+++ b/pkgs/development/compilers/ghc/8.4.4.nix
@@ -186,7 +186,7 @@ stdenv.mkDerivation (rec {
     "--disable-large-address-space"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # 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.
diff --git a/pkgs/development/compilers/ghc/8.6.5.nix b/pkgs/development/compilers/ghc/8.6.5.nix
index e746c6bfcba..c01f53aff9e 100644
--- a/pkgs/development/compilers/ghc/8.6.5.nix
+++ b/pkgs/development/compilers/ghc/8.6.5.nix
@@ -185,7 +185,7 @@ stdenv.mkDerivation (rec {
     "--disable-large-address-space"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # 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.
diff --git a/pkgs/development/compilers/ghc/8.8.1.nix b/pkgs/development/compilers/ghc/8.8.1.nix
deleted file mode 100644
index 9ebce6bdd48..00000000000
--- a/pkgs/development/compilers/ghc/8.8.1.nix
+++ /dev/null
@@ -1,236 +0,0 @@
-{ 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 || stdenv.targetPlatform.isiOS
-, # LLVM is conceptually a run-time-only depedendency, but for
-  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
-  # build-time dependency too.
-  buildLlvmPackages, llvmPackages
-
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(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
-
-, # 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
-
-, # Whetherto 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 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.1";
-  name = "${targetPrefix}ghc-${version}";
-
-  src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "06kj4fhvijinjafiy4s873n60qly323rdlz9bmc79nhlp3cq72lh";
-  };
-
-  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 compatability.
-  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/8.8.2.nix b/pkgs/development/compilers/ghc/8.8.2.nix
index 9039b1fa746..4cc41620c2d 100644
--- a/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/pkgs/development/compilers/ghc/8.8.2.nix
@@ -73,7 +73,7 @@ let
   '';
 
   # Splicer will pull out correct variations
-  libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
+  libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
     ++ [libffi]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
@@ -160,10 +160,10 @@ stdenv.mkDerivation (rec {
     "--with-system-libffi"
     "--with-ffi-includes=${targetPackages.libffi.dev}/include"
     "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
     "--with-gmp-includes=${targetPackages.gmp.dev}/include"
     "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+  ] ++ 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) [
@@ -176,7 +176,7 @@ stdenv.mkDerivation (rec {
     "--disable-large-address-space"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # 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.
diff --git a/pkgs/development/compilers/ghc/8.8.3.nix b/pkgs/development/compilers/ghc/8.8.3.nix
index 692ac9f0a12..30cbb87cce2 100644
--- a/pkgs/development/compilers/ghc/8.8.3.nix
+++ b/pkgs/development/compilers/ghc/8.8.3.nix
@@ -176,7 +176,7 @@ stdenv.mkDerivation (rec {
     "--disable-large-address-space"
   ];
 
-  # Make sure we never relax`$PATH` and hooks support for compatability.
+  # 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.
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index 022651a3c0e..01e1eaca6e1 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,42 +1,44 @@
-{stdenv, fetchFromGitHub, cmake, which, m4, python, bison, flex, llvmPackages,
-testedTargets ? ["sse2"] # the default test target is sse4, but that is not supported by all Hydra agents
+{ stdenv, fetchFromGitHub
+, cmake, which, m4, python3, bison, flex, llvmPackages
+
+  # the default test target is sse4, but that is not supported by all Hydra agents
+, testedTargets ? [ "sse2" ]
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.10.0";
-  rev = "v${version}";
-
-  inherit testedTargets;
-
-  pname = "ispc";
+  pname   = "ispc";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
-    owner = "ispc";
-    repo = "ispc";
-    inherit rev;
-    sha256 = "1x07n2gaff3v32yvddrb659mx5gg12bnbsqbyfimp396wn04w60b";
+    owner  = pname;
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "1l74xkpwwxc38k2ngg7mpvswziiy91yxslgfad6688hh1n5jvayd";
   };
 
-  doCheck = stdenv.isLinux;
-
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake which m4 bison flex python3 ];
   buildInputs = with llvmPackages; [
-    which
-    m4
-    python
-    bison
-    flex
-    llvm
-    llvmPackages.clang-unwrapped # we need to link against libclang, so we need the unwrapped
+    # we need to link against libclang, so we need the unwrapped
+    llvm llvmPackages.clang-unwrapped
   ];
 
-  postPatch = "sed -i -e 's/curses/ncurses/g' CMakeLists.txt";
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace curses ncurses
+    substituteInPlace cmake/GenerateBuiltins.cmake \
+      --replace 'bit 32 64' 'bit 64'
+  '';
+
+  inherit testedTargets;
 
-  # TODO: this correctly catches errors early, but also some things that are just weird and don't seem to be real
-  # errors
-  #configurePhase = ''
-  #  makeFlagsArray=( SHELL="${bash}/bin/bash -o pipefail" )
-  #'';
+  # needs 'transcendentals' executable, which is only on linux
+  doCheck = stdenv.isLinux;
+
+  # the compiler enforces -Werror, and -fno-strict-overflow makes it mad.
+  # hilariously this is something of a double negative: 'disable' the
+  # 'strictoverflow' hardening protection actually means we *allow* the compiler
+  # to do strict overflow optimization. somewhat misleading...
+  hardeningDisable = [ "strictoverflow" ];
 
   checkPhase = ''
     export ISPC_HOME=$PWD/bin
@@ -55,13 +57,14 @@ stdenv.mkDerivation rec {
     "-DCLANG_EXECUTABLE=${llvmPackages.clang}/bin/clang"
     "-DISPC_INCLUDE_EXAMPLES=OFF"
     "-DISPC_INCLUDE_UTILS=OFF"
-    ];
+    "-DARM_ENABLED=FALSE"
+  ];
 
   meta = with stdenv.lib; {
-    homepage = "https://ispc.github.io/";
+    homepage    = "https://ispc.github.io/";
     description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language";
-    license = licenses.bsd3;
-    platforms = ["x86_64-linux" "x86_64-darwin"]; # TODO: buildable on more platforms?
-    maintainers = [ maintainers.aristid ];
+    license     = licenses.bsd3;
+    platforms   = [ "x86_64-linux" "x86_64-darwin" ]; # TODO: buildable on more platforms?
+    maintainers = with maintainers; [ aristid thoughtpolice ];
   };
 }
diff --git a/pkgs/development/compilers/scala/dotty-bare.nix b/pkgs/development/compilers/scala/dotty-bare.nix
index 4bfc966bb45..d3f126052f5 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.20.0-RC1";
+  version = "0.23.0-RC1";
   pname = "dotty-bare";
 
   src = fetchurl {
     url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
-    sha256 = "08qs3m32cbh6516gcwraa1b5k935awmjxls6kg6xll722hkdd9l6";
+    sha256 = "0c64dw2qp8mhgsll8viqaiy34wq1ablkbc4bi813a1r4nqg57sv0";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 4cf9770c7a2..d6edaa86470 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -45,6 +45,12 @@ self: super: {
   # Needs older QuickCheck version
   attoparsec-varword = dontCheck super.attoparsec-varword;
 
+  # http://bugs.darcs.net/issue2642
+  darcs = doJailbreak (appendPatches super.darcs [
+    ./patches/darcs-setup.patch
+    ./patches/darcs-2.14.2-Compile-against-GHC-8.8.patch
+  ]);
+
   # Tests are failing
   # https://github.com/bos/statistics/issues/123
   statistics = dontCheck super.statistics;
@@ -592,6 +598,12 @@ self: super: {
   elm-server = markBroken super.elm-server;
   elm-yesod = markBroken super.elm-yesod;
 
+  # https://github.com/Euterpea/Euterpea2/issues/40
+  Euterpea = appendPatch super.Euterpea (pkgs.fetchpatch {
+    url = "https://github.com/Euterpea/Euterpea2/pull/38.patch";
+    sha256 = "13g462qmj8c7if797gnyvf8h0cddmm3xy0pjldw48w8f8sr4qsj0";
+  });
+
   # https://github.com/athanclark/sets/issues/2
   sets = dontCheck super.sets;
 
@@ -1055,13 +1067,9 @@ self: super: {
   # https://github.com/haskell-hvr/hgettext/issues/14
   hgettext = doJailbreak super.hgettext;
 
-  # 2.23.0 supports GHC 8.x and up
-  haddock = super.haddock_2_22_0;
-  # haddock-api-2.22.0: Break out of “QuickCheck ==2.11.*, hspec >=2.4.4 && <2.6”
-  haddock-api = dontHaddock (doJailbreak (super.haddock-api_2_22_0));
-
   # 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;
@@ -1499,10 +1507,16 @@ self: super: {
     polysemy = self.polysemy_1_3_0_0;
   };
 
-  # Fixed at head, but hasn't cut a release in awhile.
-  darcs = doJailbreak super.darcs;
-
   # Test suite requires running a database server. Testing is done upstream.
   hasql-pool = dontCheck super.hasql-pool;
 
+  # This bumps optparse-applicative to <0.16 in the cabal file, as otherwise
+  # the version bounds are not satisfied.  This can be removed if the PR at
+  # https://github.com/ananthakumaran/webify/pull/27 is merged and a new
+  # 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";
+  });
+
 } // 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 74ca5c9342f..96ab593cf84 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -42,6 +42,9 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # Deviate from Stackage LTS-15.x to fix the build.
+  haddock-library = self.haddock-library_1_9_0;
+
   # Jailbreak to fix the build.
   async = doJailbreak super.async;
   ChasingBottoms = doJailbreak super.ChasingBottoms;
@@ -60,7 +63,6 @@ self: super: {
   zlib = doJailbreak super.zlib;
 
   # Use the latest version to fix the build.
-  microlens-th = self.microlens-th_0_4_3_5;
   optics-core = self.optics-core_0_3;
   repline = self.repline_0_3_0_0;
   ghc-lib-parser-ex = self.ghc-lib-parser-ex_8_10_0_4;
@@ -94,4 +96,6 @@ self: super: {
     sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
   });
 
+  # 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;
 }
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 d2eb43c7ca5..57c38b22ccd 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -91,4 +91,6 @@ self: super: {
   # ghc versions prior to 8.8.x needs additional dependency to compile successfully.
   ghc-lib-parser-ex = addBuildDepend super.ghc-lib-parser-ex self.ghc-lib-parser;
 
+  # Only 0.6 is compatible with ghc 8.6 https://hackage.haskell.org/package/apply-refact/changelog
+  apply-refact = super.apply-refact_0_6_0_0;
 }
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 4c2f12b594f..bdd5a9007d7 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -41,6 +41,10 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # GHC 8.8.x can build haddock version 2.23.*
+  haddock = self.haddock_2_23_1;
+  haddock-api = self.haddock-api_2_23_1;
+
   # These builds need Cabal 3.2.x.
   cabal2spec = super.cabal2spec.override { Cabal = self.Cabal_3_2_0_0; };
   cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_3_2_0_0; });
@@ -96,4 +100,6 @@ self: super: {
   # of issues with Cabal 3.x.
   darcs = dontDistribute super.darcs;
 
+  # Only 0.7 is compatible with ghc 8.7 https://hackage.haskell.org/package/apply-refact/changelog
+  apply-refact = super.apply-refact_0_7_0_0;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index ad59a764ebd..d57c49554c4 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -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.8
+  # LTS Haskell 15.9
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -309,7 +309,7 @@ default-package-overrides:
   - bitarray ==0.0.1.1
   - bits ==0.5.2
   - bitset-word8 ==0.1.1.1
-  - bits-extra ==0.0.1.5
+  - bits-extra ==0.0.2.0
   - bitvec ==1.0.3.0
   - blake2 ==0.3.0
   - blanks ==0.3.0
@@ -346,7 +346,7 @@ default-package-overrides:
   - buffer-builder ==0.2.4.7
   - buffer-pipe ==0.0
   - bugsnag-hs ==0.1.0.0
-  - butcher ==1.3.3.0
+  - butcher ==1.3.3.1
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
@@ -408,7 +408,7 @@ default-package-overrides:
   - chimera ==0.3.1.0
   - choice ==0.2.2
   - chronologique ==0.3.1.1
-  - chronos ==1.1
+  - chronos ==1.1.1
   - chronos-bench ==0.2.0.2
   - chunked-data ==0.3.1
   - cipher-aes ==0.2.11
@@ -823,20 +823,20 @@ default-package-overrides:
   - genvalidity-scientific ==0.2.1.1
   - genvalidity-text ==0.7.0.2
   - genvalidity-time ==0.3.0.0
-  - genvalidity-typed-uuid ==0.0.0.1
+  - genvalidity-typed-uuid ==0.0.0.2
   - genvalidity-unordered-containers ==0.3.0.1
-  - genvalidity-uuid ==0.1.0.3
+  - genvalidity-uuid ==0.1.0.4
   - genvalidity-vector ==0.3.0.1
   - geojson ==4.0.2
   - getopt-generics ==0.13.0.4
   - ghc-compact ==0.1.0.0
   - ghc-core ==0.5.6
   - ghc-exactprint ==0.6.2
-  - ghcid ==0.8.5
+  - ghcid ==0.8.6
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.8.3.20200224
-  - ghc-lib-parser ==8.8.3.20200224
+  - ghc-lib ==8.8.3.20200412.1
+  - ghc-lib-parser ==8.8.3.20200412.1
   - ghc-lib-parser-ex ==8.8.5.8
   - ghc-paths ==0.1.0.12
   - ghc-prof ==1.4.1.7
@@ -987,7 +987,7 @@ default-package-overrides:
   - hsc2hs ==0.68.7
   - hscolour ==1.24.4
   - hsdns ==1.8
-  - hsebaysdk ==0.4.0.0
+  - hsebaysdk ==0.4.1.0
   - hsemail ==2.2.0
   - hset ==2.2.0
   - hs-functors ==0.1.6.0
@@ -1058,36 +1058,36 @@ default-package-overrides:
   - hunit-dejafu ==2.0.0.1
   - hvect ==0.4.0.0
   - hvega ==0.5.0.0
-  - hw-balancedparens ==0.3.0.5
-  - hw-bits ==0.7.1.5
-  - hw-conduit ==0.2.0.6
-  - hw-conduit-merges ==0.2.0.0
-  - hw-diagnostics ==0.0.0.7
-  - hw-dsv ==0.4.0
+  - hw-balancedparens ==0.3.1.0
+  - hw-bits ==0.7.2.0
+  - 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.1.1
-  - hw-excess ==0.2.2.3
-  - hw-fingertree ==0.1.1.1
-  - hw-fingertree-strict ==0.1.1.3
-  - hw-hedgehog ==0.1.0.5
-  - hw-hspec-hedgehog ==0.1.0.9
-  - hw-int ==0.0.0.4
-  - hw-ip ==2.4.1.0
-  - hw-json ==1.3.1.1
-  - hw-json-simd ==0.1.0.4
-  - hw-json-simple-cursor ==0.1.0.2
-  - hw-json-standard-cursor ==0.2.1.3
-  - hw-mquery ==0.2.0.2
-  - hw-packed-vector ==0.2.0.1
-  - hw-parser ==0.1.0.2
-  - hw-prim ==0.6.2.40
-  - hw-rankselect ==0.13.3.2
-  - hw-rankselect-base ==0.3.3.0
-  - hw-simd ==0.1.1.5
-  - hw-streams ==0.0.0.12
+  - 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.1.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-streams ==0.0.1.0
   - hw-string-parse ==0.0.0.4
   - hw-succinct ==0.1.0.1
-  - hw-xml ==0.5.0.0
+  - hw-xml ==0.5.1.0
   - hxt ==9.3.1.18
   - hxt-charproperties ==9.4.0.0
   - hxt-css ==0.1.0.3
@@ -1123,7 +1123,7 @@ default-package-overrides:
   - inj ==1.0
   - inline-c ==0.9.1.0
   - inline-c-cpp ==0.4.0.2
-  - insert-ordered-containers ==0.2.3
+  - insert-ordered-containers ==0.2.3.1
   - inspection-testing ==0.4.2.4
   - instance-control ==0.1.2.0
   - int-cast ==0.2.0.0
@@ -1318,7 +1318,7 @@ default-package-overrides:
   - microlens-mtl ==0.2.0.1
   - microlens-platform ==0.4.1
   - microlens-process ==0.2.0.1
-  - microlens-th ==0.4.3.4
+  - microlens-th ==0.4.3.5
   - microspec ==0.2.1.3
   - microstache ==1.0.1.1
   - midair ==0.2.0.1
@@ -1658,7 +1658,7 @@ default-package-overrides:
   - qm-interpolated-string ==0.3.0.0
   - qrcode-core ==0.9.2
   - qrcode-juicypixels ==0.8.0
-  - quadratic-irrational ==0.1.0
+  - quadratic-irrational ==0.1.1
   - QuasiText ==0.1.2.6
   - QuickCheck ==2.13.2
   - quickcheck-arbitrary-adt ==0.3.1.0
@@ -1719,7 +1719,7 @@ default-package-overrides:
   - regex-compat ==0.95.2.0
   - regex-compat-tdfa ==0.95.1.4
   - regex-pcre ==0.95.0.0
-  - regex-pcre-builtin ==0.95.1.1.8.43
+  - regex-pcre-builtin ==0.95.1.2.8.43
   - regex-posix ==0.96.0.0
   - regex-tdfa ==1.3.1.0
   - regex-with-pcre ==1.1.0.0
@@ -1761,7 +1761,7 @@ default-package-overrides:
   - runmemo ==1.0.0.1
   - run-st ==0.1.1.0
   - safe ==0.3.18
-  - safecopy ==0.10.2
+  - safecopy ==0.10.3
   - safe-decimal ==0.2.0.0
   - safe-exceptions ==0.1.7.0
   - safe-exceptions-checked ==0.1.0
@@ -1787,7 +1787,7 @@ default-package-overrides:
   - scientific ==0.3.6.2
   - scotty ==0.11.5
   - scrypt ==0.5.0
-  - sdl2 ==2.5.1.0
+  - sdl2 ==2.5.2.0
   - sdl2-gfx ==0.2
   - sdl2-image ==2.0.0
   - sdl2-mixer ==1.1.0
@@ -1825,7 +1825,7 @@ default-package-overrides:
   - servant-client-core ==0.16
   - servant-conduit ==0.15
   - servant-docs ==0.11.4
-  - servant-elm ==0.7.1
+  - servant-elm ==0.7.2
   - servant-foreign ==0.15
   - servant-js ==0.9.4.1
   - servant-JuicyPixels ==0.3.0.5
@@ -2001,7 +2001,7 @@ default-package-overrides:
   - tasty-dejafu ==2.0.0.1
   - tasty-discover ==4.2.1
   - tasty-expected-failure ==0.11.1.2
-  - tasty-golden ==2.3.3
+  - tasty-golden ==2.3.3.1
   - tasty-hedgehog ==1.0.0.2
   - tasty-hspec ==1.1.5.1
   - tasty-hunit ==0.10.0.2
@@ -2063,8 +2063,8 @@ default-package-overrides:
   - th-expand-syns ==0.4.6.0
   - th-extras ==0.0.0.4
   - th-lift ==0.8.1
-  - th-lift-instances ==0.1.15
-  - th-orphans ==0.13.9
+  - th-lift-instances ==0.1.16
+  - th-orphans ==0.13.10
   - th-printf ==0.7
   - thread-hierarchy ==0.3.0.1
   - thread-local-storage ==0.2
@@ -2078,7 +2078,7 @@ default-package-overrides:
   - th-strict-compat ==0.1.0.1
   - th-test-utils ==1.0.1
   - thyme ==0.3.5.5
-  - tidal ==1.4.8
+  - tidal ==1.4.9
   - tile ==0.3.0.0
   - time-compat ==1.9.3
   - timeit ==2.0
@@ -2358,6 +2358,9 @@ extra-packages:
   - ansi-terminal == 0.10.3             # required by cabal-plan, and policeman in ghc-8.8.x
   - aeson-pretty < 0.8                  # required by elm compiler
   - 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.*
@@ -2376,7 +2379,8 @@ extra-packages:
   - 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
-  - haddock-api == 2.22.*               # required on GHC 7.8.x
+  - haddock == 2.23.*                   # required on GHC < 8.10.x
+  - haddock-api == 2.23.*               # required on GHC < 8.10.x
   - haddock-library ==1.7.*             # required by stylish-cabal-0.5.0.0
   - happy <1.19.6                       # newer versions break Agda
   - happy == 1.19.9                     # for purescript
@@ -3110,7 +3114,6 @@ broken-packages:
   - binary-protocol-zmq
   - binary-search
   - binary-streams
-  - binary-strict
   - binary-typed
   - bind-marshal
   - BinderAnn
@@ -3405,6 +3408,7 @@ broken-packages:
   - cal3d
   - cal3d-examples
   - cal3d-opengl
+  - calamity
   - calc
   - calculator
   - caldims
@@ -4510,7 +4514,6 @@ broken-packages:
   - eths-rlp
   - euphoria
   - eurofxref
-  - Euterpea
   - eve
   - eve-cli
   - event
@@ -7492,6 +7495,9 @@ broken-packages:
   - mp
   - mpdmate
   - mpi-hs
+  - mpi-hs-binary
+  - mpi-hs-cereal
+  - mpi-hs-store
   - mpppc
   - mpretty
   - mpris
@@ -9786,12 +9792,6 @@ broken-packages:
   - tempus
   - tensor
   - tensor-safe
-  - tensorflow
-  - tensorflow-core-ops
-  - tensorflow-logging
-  - tensorflow-opgen
-  - tensorflow-ops
-  - tensorflow-proto
   - termbox
   - termbox-banana
   - termbox-bindings
@@ -9828,7 +9828,6 @@ broken-packages:
   - text-and-plots
   - text-ansi
   - text-containers
-  - text-format
   - text-format-heavy
   - text-generic-pretty
   - text-icu-normalized
@@ -10469,7 +10468,6 @@ broken-packages:
   - webdriver-w3c
   - WeberLogic
   - webfinger-client
-  - webify
   - webkit-javascriptcore
   - Webrexp
   - webserver
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index a33839a6227..2eca7e4ec58 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -5533,8 +5533,6 @@ self: {
        ];
        description = "Library for computer music research and education";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "EventSocket" = callPackage
@@ -20336,8 +20334,8 @@ self: {
     ({ mkDerivation, base, directory, filepath }:
      mkDerivation {
        pname = "WEditor";
-       version = "0.1.0.0";
-       sha256 = "06kg6sfs7l2zbclw7vh3d82r6x8wdxvp58k24sjmfzm41nq3j739";
+       version = "0.2.1.1";
+       sha256 = "0p0vrvg96va4jppcxr3r5m14ykb5jybn8iyj677dxpziwh5brhmq";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base directory filepath ];
        doHaddock = false;
@@ -20349,13 +20347,28 @@ self: {
     ({ mkDerivation, base, brick, microlens, vty, WEditor }:
      mkDerivation {
        pname = "WEditorBrick";
-       version = "0.1.0.0";
-       sha256 = "1im6wmpx3y6wbzg7fdyjw3zjg6c8nd1vkr49pp6m9jqr9wv8jmsg";
+       version = "0.2.0.1";
+       sha256 = "1bzrfbw14c0ad477z5s51n8181cgcxw6q93bdj1d1nrfgawq7znb";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [ base brick microlens vty WEditor ];
+       executableHaskellDepends = [ base brick vty WEditor ];
        description = "Text-editor widget with dynamic line-wrapping for use with Brick";
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "WEditorHyphen" = callPackage
+    ({ mkDerivation, base, directory, hyphenation, WEditor }:
+     mkDerivation {
+       pname = "WEditorHyphen";
+       version = "0.1.0.5";
+       sha256 = "05f7dh75dx27q35bcj84mn3q6w0sd6jkcilykrlad9gm5ihbbcbk";
+       libraryHaskellDepends = [ base hyphenation WEditor ];
+       testHaskellDepends = [ base directory hyphenation WEditor ];
+       description = "Language-specific hyphenation policies for WEditor";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "WL500gPControl" = callPackage
     ({ mkDerivation, base, directory, filepath, mtl, unix, WL500gPLib
      }:
@@ -30822,6 +30835,70 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "apply-refact_0_6_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
+     , temporary, transformers, unix-compat
+     }:
+     mkDerivation {
+       pname = "apply-refact";
+       version = "0.6.0.0";
+       sha256 = "0p2mqgjcqr1zcmk8zgr0yq7g8z1agsa6l493lkj6g3ya9lyhxgig";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filemanip ghc ghc-exactprint mtl process
+         refact syb temporary transformers unix-compat
+       ];
+       executableHaskellDepends = [
+         base containers directory filemanip filepath ghc ghc-exactprint mtl
+         optparse-applicative process refact syb temporary transformers
+         unix-compat
+       ];
+       testHaskellDepends = [
+         base containers directory filemanip filepath ghc ghc-exactprint mtl
+         optparse-applicative process refact silently syb tasty
+         tasty-expected-failure tasty-golden temporary transformers
+         unix-compat
+       ];
+       description = "Perform refactorings specified by the refact library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "apply-refact_0_7_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
+     , temporary, transformers, unix-compat
+     }:
+     mkDerivation {
+       pname = "apply-refact";
+       version = "0.7.0.0";
+       sha256 = "1facic5lbc9xih6w1kfr3inwvada6y98n9xgc6iv6r057zr8jfp0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filemanip ghc ghc-exactprint mtl process
+         refact syb temporary transformers unix-compat
+       ];
+       executableHaskellDepends = [
+         base containers directory filemanip filepath ghc ghc-exactprint mtl
+         optparse-applicative process refact syb temporary transformers
+         unix-compat
+       ];
+       testHaskellDepends = [
+         base containers directory filemanip filepath ghc ghc-exactprint mtl
+         optparse-applicative process refact silently syb tasty
+         tasty-expected-failure tasty-golden temporary transformers
+         unix-compat
+       ];
+       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, filemanip, filepath
      , ghc, ghc-exactprint, mtl, optparse-applicative, process, refact
@@ -34200,16 +34277,16 @@ self: {
        broken = true;
      }) {};
 
-  "aur_6_3_1" = callPackage
-    ({ mkDerivation, aeson, base, http-client, http-client-tls, servant
-     , servant-client, tasty, tasty-hunit, text
+  "aur_7_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, http-client
+     , http-client-tls, http-types, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "aur";
-       version = "6.3.1";
-       sha256 = "049n21n8b2qllig40fqrc72ah16d4r2ajhxxj851nkyi44fvz0ba";
+       version = "7.0.0";
+       sha256 = "1x355bd8xdg0xm4y89ciqz861chj0b6dkwq8ma7nc46acl25a18z";
        libraryHaskellDepends = [
-         aeson base http-client servant servant-client text
+         aeson base bytestring http-client http-types text
        ];
        testHaskellDepends = [
          base http-client http-client-tls tasty tasty-hunit
@@ -34239,38 +34316,32 @@ self: {
      }) {};
 
   "aura" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, algebraic-graphs, aur, base
-     , bytestring, containers, errors, filepath, generic-lens
-     , http-client, http-client-tls, http-types, language-bash
-     , megaparsec, microlens, microlens-ghc, mwc-random, network-uri
-     , nonempty-containers, optparse-applicative, paths, pretty-simple
-     , prettyprinter, prettyprinter-ansi-terminal, rio, scheduler
-     , semigroupoids, servant-client-core, stm, tasty, tasty-hunit, text
-     , these, time, transformers, typed-process, unliftio, versions
-     , witherable-class
+    ({ mkDerivation, aeson, algebraic-graphs, aur, base, bytestring
+     , containers, filepath, hashable, http-client, http-client-tls
+     , http-types, language-bash, megaparsec, microlens, network-uri
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , rio, scheduler, stm, tasty, tasty-hunit, text, time, transformers
+     , typed-process, unliftio, versions
      }:
      mkDerivation {
        pname = "aura";
-       version = "2.2.1";
-       sha256 = "01biz0slwjn9pbjfpg2lc1fywjyk9y0zvhjrbv4kx9nxnbrb7b2b";
+       version = "2.3.0";
+       sha256 = "0m0f06qbg3dn4l5di5fmidjyk9qi14ppbbgbh126naccybjj3231";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty algebraic-graphs aur base bytestring containers
-         errors filepath generic-lens http-client http-types language-bash
-         megaparsec microlens microlens-ghc mwc-random network-uri
-         nonempty-containers paths prettyprinter prettyprinter-ansi-terminal
-         rio scheduler semigroupoids servant-client-core stm text these time
-         transformers typed-process unliftio versions witherable-class
+         aeson algebraic-graphs aur base bytestring containers filepath
+         hashable http-client http-types language-bash megaparsec microlens
+         network-uri prettyprinter prettyprinter-ansi-terminal rio scheduler
+         stm text time transformers typed-process unliftio versions
        ];
        executableHaskellDepends = [
-         base bytestring containers errors http-client http-client-tls
-         microlens nonempty-containers optparse-applicative paths
-         pretty-simple prettyprinter prettyprinter-ansi-terminal rio text
-         transformers typed-process versions
+         base bytestring containers http-client http-client-tls microlens
+         optparse-applicative prettyprinter prettyprinter-ansi-terminal rio
+         text transformers typed-process versions
        ];
        testHaskellDepends = [
-         base bytestring containers megaparsec microlens paths rio tasty
+         base bytestring containers megaparsec microlens rio tasty
          tasty-hunit text versions
        ];
        description = "A secure package manager for Arch Linux and the AUR";
@@ -36382,8 +36453,8 @@ self: {
     ({ mkDerivation, barbies, base, template-haskell }:
      mkDerivation {
        pname = "barbies-th";
-       version = "0.1";
-       sha256 = "1rabviwnyp4c9r6ym958nxgrjz18gdajrj1crdniyyd586giadh4";
+       version = "0.1.1";
+       sha256 = "0b8g8q1ddbsfwf1v3063wv3abpa3f90mbiwa4wgsgizflj7s1ik9";
        libraryHaskellDepends = [ barbies base template-haskell ];
        testHaskellDepends = [ barbies base ];
        description = "Create strippable HKD via TH";
@@ -36686,13 +36757,14 @@ self: {
 
   "base16" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, criterion
-     , deepseq, memory, random-bytestring, tasty, tasty-hunit, text
+     , deepseq, memory, primitive, random-bytestring, tasty, tasty-hunit
+     , text
      }:
      mkDerivation {
        pname = "base16";
-       version = "0.2.0.0";
-       sha256 = "0j4mk7w8bg3q3ln5lcffdvaz36frizzq82z05l699y5g25abzrx4";
-       libraryHaskellDepends = [ base bytestring text ];
+       version = "0.2.0.1";
+       sha256 = "1y7ighqi1id57kh04ks8bg8b2vvzmy25p4qgdq26y0ydfz33gmsh";
+       libraryHaskellDepends = [ base bytestring primitive text ];
        testHaskellDepends = [
          base base16-bytestring bytestring memory random-bytestring tasty
          tasty-hunit text
@@ -36935,6 +37007,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base64-bytestring_1_1_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";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base bytestring containers HUnit QuickCheck split test-framework
+         test-framework-hunit test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion deepseq
+       ];
+       description = "Fast base64 encoding and decoding for ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base64-bytestring-type" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , binary, bytestring, cereal, deepseq, hashable, http-api-data
@@ -37876,12 +37970,12 @@ self: {
      }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.13.1.1";
-       sha256 = "0gqlwj30rghlqsik1i7w2yrccpf7h4pm3adnq6v7dprnhfcz1pkw";
+       version = "0.13.1.2";
+       sha256 = "0jqb1jn6jdrg6pm80zhd86rwsa05rxn0675lxv0m8c2z07g5601c";
        libraryHaskellDepends = [
          base dunai MonadRandom mtl simple-affine-space transformers
        ];
-       description = "A replacement of Yampa based on Monadic Stream Functions";
+       description = "FRP Yampa replacement implemented with Monadic Stream Functions";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -39038,6 +39132,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "binary-io" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, process }:
+     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";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "binary-list" = callPackage
     ({ mkDerivation, base, binary, bytestring, criterion, deepseq
      , phantom-state, transformers
@@ -39268,8 +39374,6 @@ self: {
        testHaskellDepends = [ base bytestring ];
        description = "Binary deserialisation using strict ByteStrings";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "binary-tagged" = callPackage
@@ -39806,7 +39910,7 @@ self: {
        description = "Low level bindings to the C levmar (Levenberg-Marquardt) library";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
+     }) {inherit (pkgs) blas; liblapack = null;};
 
   "bindings-libcddb" = callPackage
     ({ mkDerivation, base, bindings-DSL, libcddb }:
@@ -40569,8 +40673,8 @@ self: {
      }:
      mkDerivation {
        pname = "birch-beer";
-       version = "0.2.4.0";
-       sha256 = "1kiq4qq8xjw7l7mm973lxrr502fz7fybgcpzmrjiadhamjch8h9l";
+       version = "0.2.4.2";
+       sha256 = "09bk2qsq6rpa2sk817vb9w1y21rqjkj25i74cfw4rgzy2c550ffj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -41180,26 +41284,6 @@ self: {
      }:
      mkDerivation {
        pname = "bits-extra";
-       version = "0.0.1.5";
-       sha256 = "1f29jn8gxmi9nrwnrykq4z88cg8zsknbw7licmf44hlid0s5glf5";
-       libraryHaskellDepends = [ base ghc-prim vector ];
-       testHaskellDepends = [
-         base doctest doctest-discover ghc-prim hedgehog hspec hw-hedgehog
-         hw-hspec-hedgehog
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [ base criterion ghc-prim vector ];
-       description = "Useful bitwise operations";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "bits-extra_0_0_2_0" = callPackage
-    ({ mkDerivation, base, criterion, doctest, doctest-discover
-     , ghc-prim, hedgehog, hspec, hspec-discover, hw-hedgehog
-     , hw-hspec-hedgehog, vector
-     }:
-     mkDerivation {
-       pname = "bits-extra";
        version = "0.0.2.0";
        sha256 = "1c54008kinzcx93kc8vcp7wq7la662m8nk82ax76i9b0gvbkk21f";
        libraryHaskellDepends = [ base ghc-prim vector ];
@@ -41211,7 +41295,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ghc-prim vector ];
        description = "Useful bitwise operations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bits-extras" = callPackage
@@ -41411,8 +41494,8 @@ self: {
        pname = "bitwise";
        version = "1.0.0.1";
        sha256 = "03xyzdkyb99gvm9g5chl07rqbnm7qrxba7wgmrfmal0rkwm0ibkn";
-       revision = "2";
-       editedCabalFile = "1mnh3629kgfivjwbbqwrkcyvg6iah5pncc5jzgq3ka5cq0kg09gz";
+       revision = "3";
+       editedCabalFile = "0sx6i1b9slicisnj53sv2jbdryyqd66amcm43xxqlv5srsqqijdm";
        libraryHaskellDepends = [ array base bytestring ];
        testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ array base bytestring criterion ];
@@ -42048,6 +42131,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "blaze-markup_0_8_2_5" = callPackage
+    ({ mkDerivation, base, blaze-builder, bytestring, containers, HUnit
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "blaze-markup";
+       version = "0.8.2.5";
+       sha256 = "0qbnydx79pappwd4mzmmqq0pilpkiq7f6rqmqzpi2jjyfxlbmlqv";
+       libraryHaskellDepends = [ base blaze-builder bytestring text ];
+       testHaskellDepends = [
+         base blaze-builder bytestring containers HUnit QuickCheck tasty
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "A blazingly fast markup combinator library for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "blaze-shields" = callPackage
     ({ mkDerivation, base, blaze-html, blaze-markup, blaze-svg, text }:
      mkDerivation {
@@ -44084,18 +44185,20 @@ self: {
 
   "brok" = callPackage
     ({ mkDerivation, ansi-terminal, attoparsec, base, classy-prelude
-     , directory, file-embed, http-client, http-conduit, tasty
-     , tasty-discover, tasty-expected-failure, tasty-hunit, text, time
+     , connection, 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 = "0.2.0.0";
-       sha256 = "1fsh05433gkm89j4nf9whcif0iiscxbd32q307rjm1fwsfwp9c46";
+       version = "1.0.0";
+       sha256 = "07zi88xsacacqw6mg87ipic5y72vjpn9mx789bk9gk4jvd69z7x1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal attoparsec base classy-prelude directory file-embed
-         http-client http-conduit text time
+         ansi-terminal attoparsec base classy-prelude connection directory
+         file-embed http-client http-client-tls http-conduit
+         template-haskell text time
        ];
        executableHaskellDepends = [ base classy-prelude file-embed ];
        testHaskellDepends = [
@@ -45106,29 +45209,6 @@ self: {
      }:
      mkDerivation {
        pname = "butcher";
-       version = "1.3.3.0";
-       sha256 = "1zp0j5ydbnk6x3yblhs9c6z2a3bmh9fvprqhx2wk3wyvrgkwsx8h";
-       revision = "1";
-       editedCabalFile = "1jw9dvkqdq24mgxvrrz4ymlqgrqkn4648dyy22wmx06lbqzcbqam";
-       libraryHaskellDepends = [
-         base bifunctors containers deque extra free microlens microlens-th
-         mtl multistate pretty transformers unsafe void
-       ];
-       testHaskellDepends = [
-         base containers deque extra free hspec microlens microlens-th mtl
-         multistate pretty transformers unsafe
-       ];
-       description = "Chops a command or program invocation into digestable pieces";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "butcher_1_3_3_1" = callPackage
-    ({ mkDerivation, base, bifunctors, containers, deque, extra, free
-     , hspec, microlens, microlens-th, mtl, multistate, pretty
-     , transformers, unsafe, void
-     }:
-     mkDerivation {
-       pname = "butcher";
        version = "1.3.3.1";
        sha256 = "0nqn057b5g8p6nj9xpbg52swiwzncirgfmzp3l1z5d8yn641zp1n";
        libraryHaskellDepends = [
@@ -45141,7 +45221,6 @@ self: {
        ];
        description = "Chops a command or program invocation into digestable pieces";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "butter" = callPackage
@@ -47623,6 +47702,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cache-polysemy" = callPackage
+    ({ mkDerivation, base, cache, clock, hashable, polysemy
+     , polysemy-plugin
+     }:
+     mkDerivation {
+       pname = "cache-polysemy";
+       version = "0.1.2";
+       sha256 = "1psgf0x9hjhhnn7kn954b26kxd1c94cbhgv8xd2w3nxpmv2qh0m2";
+       libraryHaskellDepends = [
+         base cache clock hashable polysemy polysemy-plugin
+       ];
+       testHaskellDepends = [
+         base cache clock hashable polysemy polysemy-plugin
+       ];
+       description = "cached hashmaps";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cached" = callPackage
     ({ mkDerivation, base, containers, directory, doctest, filepath
      , protolude, QuickCheck, quickcheck-assertions, shake, text
@@ -48016,6 +48113,35 @@ self: {
        broken = true;
      }) {};
 
+  "calamity" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, concurrent-extra
+     , 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
+     }:
+     mkDerivation {
+       pname = "calamity";
+       version = "0.1.0.0";
+       sha256 = "0cpx7v210gyh3r5qzh704wx4fgrb913b5g4rys76jhnmp77a79wc";
+       libraryHaskellDepends = [
+         aeson async base bytestring concurrent-extra 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
+       ];
+       description = "A library for writing discord bots";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "calc" = callPackage
     ({ mkDerivation, array, base, harpy, haskell98, mtl }:
      mkDerivation {
@@ -48720,6 +48846,42 @@ self: {
        broken = true;
      }) {};
 
+  "cardano-transactions" = callPackage
+    ({ mkDerivation, ansi-terminal, base, base58-bytestring, bytestring
+     , cardano-binary, cardano-crypto, cardano-crypto-wrapper
+     , cardano-ledger, cardano-ledger-test, cardano-tx, cborg
+     , cryptonite, extra, hedgehog-quickcheck, hspec, memory
+     , optparse-applicative, process, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "cardano-transactions";
+       version = "1.0.0";
+       sha256 = "0qzf1yf85m0fwiayjb8g09w9dxq1zyg9xwjcd9p98i3dj6722yfa";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base58-bytestring bytestring cardano-binary cardano-crypto
+         cardano-crypto-wrapper cardano-ledger cborg cryptonite extra memory
+         text
+       ];
+       executableHaskellDepends = [
+         ansi-terminal base bytestring cborg memory optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring cardano-crypto-wrapper cardano-ledger
+         cardano-ledger-test cborg hedgehog-quickcheck hspec process
+         QuickCheck text
+       ];
+       testToolDepends = [ cardano-tx ];
+       description = "Library utilities for constructing and signing Cardano transactions";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {cardano-binary = null; cardano-crypto = null; 
+         cardano-crypto-wrapper = null; cardano-ledger = null; 
+         cardano-ledger-test = null; cardano-tx = null;};
+
   "carettah" = callPackage
     ({ mkDerivation, base, cairo, directory, filepath, gtk
      , gtk2hs-buildtools, hcwiid, highlighting-kate, mtl, pandoc, pango
@@ -51838,32 +52000,6 @@ self: {
      }:
      mkDerivation {
        pname = "chronos";
-       version = "1.1";
-       sha256 = "0g41hchir6rxfnd8halg49y80pc9dr38k7b7cik18gqdasswwg6c";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring hashable primitive semigroups text
-         torsor vector
-       ];
-       testHaskellDepends = [
-         attoparsec base bytestring doctest HUnit QuickCheck test-framework
-         test-framework-hunit test-framework-quickcheck2 text torsor
-       ];
-       benchmarkHaskellDepends = [
-         attoparsec base bytestring criterion deepseq old-locale QuickCheck
-         text thyme time vector
-       ];
-       description = "A performant time library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "chronos_1_1_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, criterion
-     , deepseq, doctest, hashable, HUnit, old-locale, primitive
-     , QuickCheck, semigroups, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text, thyme, time, torsor, vector
-     }:
-     mkDerivation {
-       pname = "chronos";
        version = "1.1.1";
        sha256 = "10nxhnj5y984c3mf2wkc2zl6afbph0b0vj7f722g0yp7cq4908yj";
        libraryHaskellDepends = [
@@ -51880,7 +52016,6 @@ self: {
        ];
        description = "A performant time library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chronos-bench" = callPackage
@@ -52816,8 +52951,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.2.0";
-       sha256 = "1rv8bjs563c8r543crj69dnp1610bch3dsxb5c0wckf799l8bmpn";
+       version = "1.2.1";
+       sha256 = "0bczw02kgpiczagnv2aq2yjj0g2619gl8dzwpzsvfz5r1p8kp6f3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52846,8 +52981,8 @@ self: {
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.2.0";
-       sha256 = "0w5ilrqagc7xj14ngjg0rgcc3vhkxhsrz21rgl9qhygcs1cam5j2";
+       version = "1.2.1";
+       sha256 = "1l6xibxbkfz91wkl55548wv48gba6n4pmbymb1fbhs43nx3hssil";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base binary bytestring clash-prelude
@@ -52883,10 +53018,10 @@ self: {
      }) {};
 
   "clash-prelude" = callPackage
-    ({ mkDerivation, array, base, bifunctors, binary, bytestring
-     , constraints, containers, criterion, data-binary-ieee754
-     , data-default-class, deepseq, doctest, ghc-prim
-     , ghc-typelits-extra, ghc-typelits-knownnat
+    ({ mkDerivation, array, base, bifunctors, binary, bytestring, Cabal
+     , cabal-doctest, constraints, containers, criterion
+     , data-binary-ieee754, data-default-class, deepseq, doctest
+     , ghc-prim, ghc-typelits-extra, ghc-typelits-knownnat
      , ghc-typelits-natnormalise, half, hashable, hint, integer-gmp
      , lens, QuickCheck, quickcheck-classes-base, recursion-schemes
      , reflection, singletons, tasty, tasty-hunit, tasty-quickcheck
@@ -52895,8 +53030,9 @@ self: {
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.2.0";
-       sha256 = "181ccw3ajdfhmlwjs9jiqy10b7whsp3pcqyxw166s8rda7h3pvpj";
+       version = "1.2.1";
+       sha256 = "18smrj545fvry8wj0hvawwcwc9yf1h1nsyyl337yh7xnxq9bycsy";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base bifunctors binary bytestring constraints containers
          data-binary-ieee754 data-default-class deepseq ghc-prim
@@ -54777,6 +54913,45 @@ self: {
        broken = true;
      }) {};
 
+  "co-log_0_4_0_1" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, chronos
+     , co-log-core, containers, contravariant, directory, filepath
+     , hedgehog, markdown-unlit, mtl, stm, text, transformers
+     , typerep-map, vector
+     }:
+     mkDerivation {
+       pname = "co-log";
+       version = "0.4.0.1";
+       sha256 = "08sqrsy55wrfc5bg5sz22hah0ix14wrxn20lka17ri17a818w9p7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring chronos co-log-core containers
+         contravariant directory filepath mtl stm text transformers
+         typerep-map vector
+       ];
+       executableHaskellDepends = [
+         base bytestring co-log-core mtl text typerep-map
+       ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [ base co-log-core hedgehog ];
+       description = "Composable Contravariant Comonadic Logging Library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "co-log-concurrent" = callPackage
+    ({ mkDerivation, base, co-log-core, stm }:
+     mkDerivation {
+       pname = "co-log-concurrent";
+       version = "0.4.0.0";
+       sha256 = "1gnfqg6c290ain7v06clxga6jj46bdry6vvsrk1dhcdqv1rvkfwz";
+       libraryHaskellDepends = [ base co-log-core stm ];
+       description = "Asynchronous backend for co-log library";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "co-log-core" = callPackage
     ({ mkDerivation, base, doctest, Glob }:
      mkDerivation {
@@ -54789,6 +54964,19 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "co-log-core_0_2_1_1" = callPackage
+    ({ mkDerivation, base, doctest, Glob }:
+     mkDerivation {
+       pname = "co-log-core";
+       version = "0.2.1.1";
+       sha256 = "04w8j39n1cfmzvvllbjj21w7g53lgppf5crk7n4i9hgspaxbwyik";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest Glob ];
+       description = "Composable Contravariant Comonadic Logging Library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "co-log-polysemy" = callPackage
     ({ mkDerivation, base, co-log-core, polysemy }:
      mkDerivation {
@@ -54803,6 +54991,21 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "co-log-polysemy_0_0_1_2" = callPackage
+    ({ mkDerivation, base, co-log-core, polysemy }:
+     mkDerivation {
+       pname = "co-log-polysemy";
+       version = "0.0.1.2";
+       sha256 = "0g1qr6akgbnqs64xammvdpqjf5n5drx4a48w7lxw7l6n7z99rr4n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base co-log-core polysemy ];
+       executableHaskellDepends = [ base co-log-core polysemy ];
+       description = "Composable Contravariant Comonadic Logging Library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "co-log-sys" = callPackage
     ({ mkDerivation, aeson, base, co-log-core, fmt, microlens
      , monad-control, mtl, network, universum, unix
@@ -55110,22 +55313,23 @@ self: {
      , bytestring, cereal, cereal-text, containers, deepseq
      , dependent-sum, ghc-prim, hashable, HUnit, monad-loops, mtl
      , random, ref-tf, reflex, template-haskell, test-framework
-     , test-framework-hunit, text, time
+     , test-framework-hunit, text, time, witherable
      }:
      mkDerivation {
        pname = "codeworld-api";
-       version = "0.4.0";
-       sha256 = "0smw8xjigq1sl3rppbhvifsrzjfbhy4d41m0rpjf1d1ahvby64ja";
+       version = "0.5.0";
+       sha256 = "17s1353jk5l93hxv7wnnf4hxzw0ds1gq16kxkf7ig985141cah1n";
        libraryHaskellDepends = [
          aeson base base64-bytestring blank-canvas bytestring cereal
          cereal-text containers deepseq dependent-sum ghc-prim hashable
          monad-loops mtl random ref-tf reflex template-haskell text time
+         witherable
        ];
        testHaskellDepends = [
          aeson base base64-bytestring blank-canvas bytestring cereal
          cereal-text containers deepseq dependent-sum ghc-prim hashable
          HUnit monad-loops mtl random ref-tf reflex template-haskell
-         test-framework test-framework-hunit text time
+         test-framework test-framework-hunit text time witherable
        ];
        description = "Graphics library for CodeWorld";
        license = stdenv.lib.licenses.asl20;
@@ -59118,8 +59322,8 @@ self: {
      }:
      mkDerivation {
        pname = "configurator-pg";
-       version = "0.2.2";
-       sha256 = "0ibpsj3yf8qlcjr84i77j6llrsfpcxadqqgsqz90cwy92z5vjxrx";
+       version = "0.2.3";
+       sha256 = "0vbs52za4smxy8nag08ag2c9mjbpiw1a7ai5vd8is7db9732skfa";
        libraryHaskellDepends = [
          base containers megaparsec protolude scientific text
        ];
@@ -60129,8 +60333,8 @@ self: {
     ({ mkDerivation, base, containers, contravariant, mmorph }:
      mkDerivation {
        pname = "contracheck-applicative";
-       version = "0.1.1.0";
-       sha256 = "0lv9zq1lxnl9w77wnsywna4lh1cw7gh8ks3gwciij2x2bwlw48ns";
+       version = "0.1.2";
+       sha256 = "0vfw5fp6max40wrfkcsl0km8qpdp231b6agc16y758cg9isxbllg";
        libraryHaskellDepends = [ base containers contravariant mmorph ];
        description = "Validation types/typeclass based on the contravariance";
        license = stdenv.lib.licenses.bsd3;
@@ -61395,8 +61599,8 @@ self: {
      }:
      mkDerivation {
        pname = "cpkg";
-       version = "0.2.5.1";
-       sha256 = "08snjhmxjcsw2imglfpqggby7vn2vgbbz56d0mh4s6p73mrqnjgg";
+       version = "0.2.5.2";
+       sha256 = "1njjbvpnkjwxgsrjr3fihyvgr194mc94g2qxdq5yb1ai3sms7zsd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62713,18 +62917,17 @@ self: {
 
   "crypto-classical" = callPackage
     ({ mkDerivation, base, bytestring, containers, crypto-numbers
-     , crypto-random, microlens, microlens-th, modular-arithmetic
-     , QuickCheck, text, transformers
+     , crypto-random, modular-arithmetic, QuickCheck, text, transformers
      }:
      mkDerivation {
        pname = "crypto-classical";
-       version = "0.2.1";
-       sha256 = "0mqvygx8pvvmaalqzr94nf400smq8y22shyvfhxrh69hs6q0dgw6";
+       version = "0.3.0";
+       sha256 = "1jkgdaln74sznkqr1knainpn3pbjih76rk3r7wmx28jvy57pm1b3";
        libraryHaskellDepends = [
-         base bytestring containers crypto-numbers crypto-random microlens
-         microlens-th modular-arithmetic text transformers
+         base bytestring containers crypto-numbers crypto-random
+         modular-arithmetic text transformers
        ];
-       testHaskellDepends = [ base bytestring microlens QuickCheck ];
+       testHaskellDepends = [ base bytestring QuickCheck ];
        description = "An educational tool for studying classical cryptography schemes";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -63659,8 +63862,8 @@ self: {
        pname = "css-syntax";
        version = "0.1.0.0";
        sha256 = "02f000nzc0dhjhlp1z82q4far8ablvzalpk918lg54f63lbqdwsh";
-       revision = "1";
-       editedCabalFile = "14241m9nm3wbbhajw95gdj9mvfzf4hmrzvk2wgjvkm71mg4yhwnr";
+       revision = "4";
+       editedCabalFile = "0n3wf9yjpn29nl0f9jk3izp7d2iq00j6bp1y1v1k5vc1ycskhn5y";
        libraryHaskellDepends = [ base scientific text ];
        testHaskellDepends = [
          base directory hspec QuickCheck scientific text
@@ -65380,6 +65583,8 @@ self: {
        pname = "data-accessor-template";
        version = "0.2.1.16";
        sha256 = "15gd6xlrq5ica514m5rdcz2dl8bibdmbsmnc98ddhx491c9g5rwk";
+       revision = "1";
+       editedCabalFile = "0zz2v420zvinphs6jnngc40x7h8jn5rqj3nj8alpgfyqx59w41my";
        libraryHaskellDepends = [
          base data-accessor template-haskell utility-ht
        ];
@@ -65489,8 +65694,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "data-category";
-       version = "0.7.1";
-       sha256 = "0yvrqgid8b9awm1z31cpa465jfvjq8p23k23dxg567rm191n68kz";
+       version = "0.8.1";
+       sha256 = "06m5yb7ycxr1drvv67cyb01mhghhfac9y8wf7lpmq2z55h4hflb2";
        description = "Category theory";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -69706,8 +69911,8 @@ self: {
     ({ mkDerivation, aeson, base, bytestring }:
      mkDerivation {
        pname = "deriving-aeson";
-       version = "0.2.3";
-       sha256 = "0cxkrsdbr2mq2i5w8762lc5cc9kyf3csscd9gmndrrdvicmq1yvv";
+       version = "0.2.4";
+       sha256 = "1wswirjqpmmzyag5y2jhys9pswl3fdrzjv69csvd655qg8iyybpb";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
@@ -70767,6 +70972,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "di-polysemy" = callPackage
+    ({ mkDerivation, base, df1, di-core, di-df1, di-handle, polysemy }:
+     mkDerivation {
+       pname = "di-polysemy";
+       version = "0.1.1.0";
+       sha256 = "08n98ivdvfb77slzbxvysy4cgvnf6jcxf0zqj1rr40rjfxaw2xcn";
+       libraryHaskellDepends = [
+         base df1 di-core di-df1 di-handle polysemy
+       ];
+       description = "DI logger wrapped for Polysemy";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "dia-base" = callPackage
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
@@ -74151,8 +74369,8 @@ self: {
      }:
      mkDerivation {
        pname = "dobutokO2";
-       version = "0.31.0.0";
-       sha256 = "16sk8igx7n07lkhvi5r78d15n4wmhbirall6s4zaqn8ab7sdga86";
+       version = "0.35.2.0";
+       sha256 = "1hr4l8flfjinvbdwxf3xmq3xknd19kbf3d2k23dy7y1fghd6vflh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74163,7 +74381,7 @@ self: {
          base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7s mmsyn7ukr
          process vector
        ];
-       description = "A program and a library to create experimental music from a mono audio and a Ukrainian text";
+       description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -76160,6 +76378,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dunai_0_7_0" = callPackage
+    ({ mkDerivation, base, MonadRandom, simple-affine-space, tasty
+     , tasty-hunit, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "dunai";
+       version = "0.7.0";
+       sha256 = "1gii02d557ak0h4sq5ra4n40y4sl88z74n6mwd0937xxlpiahwsh";
+       libraryHaskellDepends = [
+         base MonadRandom simple-affine-space transformers transformers-base
+       ];
+       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
     ({ mkDerivation, base, MonadRandom, transformers, transformers-base
      }:
@@ -76180,8 +76415,8 @@ self: {
     ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }:
      mkDerivation {
        pname = "dunai-test";
-       version = "0.1.0.0";
-       sha256 = "0jkn1740adzv9jwsp6qa0sxfxg6x5cvqlss1yjwcr1chsvpk2d1m";
+       version = "0.7.0";
+       sha256 = "08pbfw10dkds8dwr913p0rikvs7vxfwyj5rdsr7njzh39fz9lqli";
        libraryHaskellDepends = [
          base dunai normaldistribution QuickCheck
        ];
@@ -76659,6 +76894,8 @@ self: {
        pname = "dynamic-plot";
        version = "0.4.1.0";
        sha256 = "1nly6ra0kd72q42hiaqism94vmyg5hp4ppyd024iiq9pcbgpq7r6";
+       revision = "1";
+       editedCabalFile = "0chaa06bzf3jd55c9s6wcnl7i8j2wl55rr9g50aia4gsc47azgxr";
        libraryHaskellDepends = [
          base colour colour-space constrained-categories containers
          data-default deepseq diagrams-cairo diagrams-core diagrams-gtk
@@ -78098,8 +78335,8 @@ self: {
      }:
      mkDerivation {
        pname = "ejdb2-binding";
-       version = "0.1.0.0";
-       sha256 = "0vh40ssfrz22vdqw0lswq27rr7wpzndg5y74wjdsddy44pbgmmc9";
+       version = "0.2.0.0";
+       sha256 = "1lxyjnnwv3r05l8qc979kmrl9kk5h8mdx9ca4wx8r6plsn7b2a51";
        libraryHaskellDepends = [
          aeson base bytestring unordered-containers
        ];
@@ -79580,8 +79817,8 @@ self: {
      }:
      mkDerivation {
        pname = "encoding";
-       version = "0.8.2";
-       sha256 = "1lfh5pyc4f73870xz6dydksp5nspnzbkj4fvinhwdknhc5ii8353";
+       version = "0.8.3";
+       sha256 = "07flh8rmdbi8rhgg2jzv70yb91kkjkiidc8ww5mxjdk8av70wbj3";
        setupHaskellDepends = [
          base Cabal containers filepath ghc-prim HaXml
        ];
@@ -83299,6 +83536,18 @@ self: {
        broken = true;
      }) {};
 
+  "extended-containers" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck, transformers, vector }:
+     mkDerivation {
+       pname = "extended-containers";
+       version = "0.1.0.0";
+       sha256 = "04m3i90iljx36yc528yz6dcgcrfvzkvjvghqjp741mqvmixdjsip";
+       libraryHaskellDepends = [ base transformers vector ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       description = "Heap and Vector container types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "extended-reals" = callPackage
     ({ mkDerivation, base, deepseq, hashable, HUnit, QuickCheck, tasty
      , tasty-hunit, tasty-quickcheck, tasty-th
@@ -86915,6 +87164,8 @@ self: {
        pname = "first-class-families";
        version = "0.8.0.0";
        sha256 = "190jl3vs7glkbm8ap90x9yzlj01yzxd818s3i0w4pz21b6d6sxav";
+       revision = "1";
+       editedCabalFile = "02z6wixk9kdgshxsz99lag29lb70kadg9wn6vsgk906wj014fv52";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest Glob ];
        description = "First class type families";
@@ -90868,10 +91119,8 @@ self: {
     ({ mkDerivation, base, bifunctors, lens, optparse-applicative }:
      mkDerivation {
        pname = "friendly";
-       version = "0.1.0.0";
-       sha256 = "0ikbfki5yvagc3xjbqwmzzp29idfviaylnan6cr39kna6fc8ajgx";
-       revision = "2";
-       editedCabalFile = "12j953w8zcix2iyqwkn08zpw1r1dd7jk8p8a3v5hs5rya1qb74si";
+       version = "0.1.0.1";
+       sha256 = "0860zmvlccdnjycmjr4wmi8ighps9dig5zik8hpj2h3z208ph8qp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -92228,12 +92477,17 @@ self: {
      }) {};
 
   "fusion-plugin" = callPackage
-    ({ mkDerivation, base, fusion-plugin-types, ghc, syb }:
+    ({ mkDerivation, base, containers, directory, filepath
+     , fusion-plugin-types, ghc, syb, time, transformers
+     }:
      mkDerivation {
        pname = "fusion-plugin";
-       version = "0.2.0";
-       sha256 = "0fbsmlkvxxfiwajl3ihidp2xmsds4y47sbqigng9pp78lhln35am";
-       libraryHaskellDepends = [ base fusion-plugin-types ghc syb ];
+       version = "0.2.1";
+       sha256 = "08v43q428s6nw3diqaasdr0c9arrzvzvldcybj8wp2r66aw613ic";
+       libraryHaskellDepends = [
+         base containers directory filepath fusion-plugin-types ghc syb time
+         transformers
+       ];
        description = "GHC plugin to make stream fusion more predictable";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -92265,8 +92519,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.15.4";
-       sha256 = "03q3hd8m9m8xxpd0xbxqc0r2ycybznrxr4j1mr2qkzlf49qp1y2v";
+       version = "0.15.5";
+       sha256 = "07xd67202qv1fnka0nichpspzpyzlismlwdhlq0rr6nb3xriykxn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -94904,26 +95158,6 @@ self: {
      }) {};
 
   "genvalidity-typed-uuid" = callPackage
-    ({ mkDerivation, base, genvalidity, genvalidity-hspec
-     , genvalidity-hspec-aeson, genvalidity-uuid, hspec, QuickCheck
-     , typed-uuid
-     }:
-     mkDerivation {
-       pname = "genvalidity-typed-uuid";
-       version = "0.0.0.1";
-       sha256 = "12b9pqly41kwvyqzlqs2nv882m0vvkf06bshngvhjl4ykn7almqk";
-       libraryHaskellDepends = [
-         base genvalidity genvalidity-uuid QuickCheck typed-uuid
-       ];
-       testHaskellDepends = [
-         base genvalidity genvalidity-hspec genvalidity-hspec-aeson
-         genvalidity-uuid hspec QuickCheck typed-uuid
-       ];
-       description = "Generators for Phantom-Typed version of UUID";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-typed-uuid_0_0_0_2" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, genvalidity-hspec-aeson
      , genvalidity-uuid, hspec, QuickCheck, typed-uuid
@@ -94945,7 +95179,6 @@ self: {
        ];
        description = "Generators for Phantom-Typed version of UUID";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-unordered-containers" = callPackage
@@ -94970,24 +95203,6 @@ self: {
      }) {};
 
   "genvalidity-uuid" = callPackage
-    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
-     , QuickCheck, uuid, validity, validity-uuid
-     }:
-     mkDerivation {
-       pname = "genvalidity-uuid";
-       version = "0.1.0.3";
-       sha256 = "1kjvl1i4nih5yyydilwsq1mssw1ljiipi20k5pxjh5rgb4f1p520";
-       libraryHaskellDepends = [
-         base genvalidity QuickCheck uuid validity validity-uuid
-       ];
-       testHaskellDepends = [
-         base genvalidity genvalidity-hspec hspec QuickCheck uuid
-       ];
-       description = "GenValidity support for UUID";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-uuid_0_1_0_4" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck, uuid
      , validity, validity-uuid
@@ -95007,7 +95222,6 @@ self: {
        ];
        description = "GenValidity support for UUID";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-vector" = callPackage
@@ -95487,17 +95701,17 @@ self: {
      }) {};
 
   "ghc-check" = callPackage
-    ({ mkDerivation, base, ghc, ghc-paths, template-haskell
-     , transformers
+    ({ mkDerivation, base, filepath, ghc, ghc-paths, process
+     , template-haskell, transformers
      }:
      mkDerivation {
        pname = "ghc-check";
-       version = "0.1.0.3";
-       sha256 = "1zrlnk3gzdb96592is2krk8qpk386bib0bpgw47yqj8qfcxqf76v";
+       version = "0.3.0.0";
+       sha256 = "19fgfkv68q1l93ql6g4xpa27pcv1v04vpfpq0rcvspp09xmcv1i4";
        libraryHaskellDepends = [
-         base ghc ghc-paths template-haskell transformers
+         base filepath ghc ghc-paths process template-haskell transformers
        ];
-       description = "Detect mismatches between compile-time and run-time versions of the ghc api";
+       description = "detect mismatches between compile-time and run-time versions of the ghc api";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -95804,8 +96018,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-heap-view";
-       version = "0.6.1";
-       sha256 = "04lmj3ihdwcz483w2cpjs4zcpld8yk3aslkw2gl4mal3fpwf0vhx";
+       version = "0.6.2";
+       sha256 = "1wj11g24zap7r2xvp46dir54hwyki025xnkgymc73224lisc3134";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
@@ -95909,8 +96123,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.8.3.20200224";
-       sha256 = "0qwv8i4x4ylixrbipxkii0zxz3j33cpahlckbn6chpp9b59bfdpa";
+       version = "8.8.3.20200412.1";
+       sha256 = "07xfj3p8w5964jv5py19p2pbcpbjcbwzpd4b46d43j80abzavgxg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -95948,8 +96162,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.8.3.20200224";
-       sha256 = "0hdn3sd4l1ph26f715i6mlqw6l6w8nnfp9jmlcwrjph14rpn1y15";
+       version = "8.8.3.20200412.1";
+       sha256 = "1bfyi3haq6qz9x5dbnjvf7m7wqrxqmv3i4kdivlh2v416d56apqd";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -96898,32 +97112,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghcid";
-       version = "0.8.5";
-       sha256 = "15zj78wasix4yz8mxx5hl6x1gj364vsbwn5arp7sbq13rywhs2qy";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-terminal base cmdargs directory extra filepath process time
-       ];
-       executableHaskellDepends = [
-         ansi-terminal base cmdargs containers directory extra filepath
-         fsnotify process terminal-size time unix
-       ];
-       testHaskellDepends = [
-         ansi-terminal base cmdargs containers directory extra filepath
-         fsnotify process tasty tasty-hunit terminal-size time unix
-       ];
-       description = "GHCi based bare bones IDE";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghcid_0_8_6" = callPackage
-    ({ mkDerivation, ansi-terminal, base, cmdargs, containers
-     , directory, extra, filepath, fsnotify, process, tasty, tasty-hunit
-     , terminal-size, time, unix
-     }:
-     mkDerivation {
-       pname = "ghcid";
        version = "0.8.6";
        sha256 = "00zyf8m3jj72ax7sj0c4j0yivrvj72vqfwra7hzgywf8fc2qxfv1";
        isLibrary = true;
@@ -96941,7 +97129,6 @@ self: {
        ];
        description = "GHCi based bare bones IDE";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghcide" = callPackage
@@ -98696,8 +98883,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-brunch";
-       version = "1.2.0.0";
-       sha256 = "144i3rk9mx5qf1w231zramzr0vvwf8gq4h63v234jcxdlygysy5h";
+       version = "1.3.1.0";
+       sha256 = "0k1q3f9hyyagv67mpaj1159vic4kc44nk10nswg0pql38ai5bqvx";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -103733,13 +103920,14 @@ self: {
   "gopro-plus" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, exceptions
      , filepath, generic-deriving, HUnit, lens, lens-aeson, mtl, random
-     , retry, tasty, tasty-hunit, tasty-quickcheck, text, time
-     , transformers, unix, unliftio, unordered-containers, vector, wreq
+     , raw-strings-qq, retry, tasty, tasty-hunit, tasty-quickcheck, text
+     , time, transformers, unix, unliftio, unordered-containers, vector
+     , wreq
      }:
      mkDerivation {
        pname = "gopro-plus";
-       version = "0.3.0.1";
-       sha256 = "1c2g8ndqwlm8nz08nm66pz3j3wqdm0cn1r03ykay4g3lig7i27za";
+       version = "0.3.1.0";
+       sha256 = "06wggkl9p69xm75f3kkajacqr54fq7vqbmyldgapfqglbzs43z7g";
        libraryHaskellDepends = [
          aeson base bytestring containers exceptions filepath
          generic-deriving lens lens-aeson mtl random retry text time
@@ -103747,9 +103935,9 @@ self: {
        ];
        testHaskellDepends = [
          aeson base bytestring containers exceptions filepath
-         generic-deriving HUnit lens lens-aeson mtl random retry tasty
-         tasty-hunit tasty-quickcheck text time transformers unix unliftio
-         unordered-containers vector wreq
+         generic-deriving HUnit lens lens-aeson mtl random raw-strings-qq
+         retry tasty tasty-hunit tasty-quickcheck text time transformers
+         unix unliftio unordered-containers vector wreq
        ];
        description = "GoPro Plus Client API";
        license = stdenv.lib.licenses.bsd3;
@@ -105272,6 +105460,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "greskell_1_0_1_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.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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "greskell-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, doctest
      , doctest-discover, hashable, hspec, QuickCheck, scientific
@@ -107334,7 +107544,7 @@ self: {
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
+     }) {inherit (pkgs) blas; liblapack = null;};
 
   "hXmixer" = callPackage
     ({ mkDerivation, base, directory, gtk3, process, split, text }:
@@ -108036,6 +108246,34 @@ self: {
        broken = true;
      }) {};
 
+  "hackage-security_0_5_3_0" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base64-bytestring
+     , bytestring, Cabal, containers, cryptohash-sha256, directory
+     , ed25519, filepath, ghc-prim, mtl, network, network-uri, parsec
+     , pretty, QuickCheck, tar, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, time, transformers, zlib
+     }:
+     mkDerivation {
+       pname = "hackage-security";
+       version = "0.5.3.0";
+       sha256 = "08bwawc7ramgdh54vcly2m9pvfchp0ahhs8117jajni6x4bnx66v";
+       revision = "6";
+       editedCabalFile = "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay";
+       libraryHaskellDepends = [
+         base base16-bytestring base64-bytestring bytestring Cabal
+         containers cryptohash-sha256 directory ed25519 filepath ghc-prim
+         mtl network network-uri parsec pretty tar template-haskell time
+         transformers zlib
+       ];
+       testHaskellDepends = [
+         base bytestring Cabal containers network-uri QuickCheck tar tasty
+         tasty-hunit tasty-quickcheck temporary time zlib
+       ];
+       description = "Hackage security library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hackage-security" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, base64-bytestring
      , bytestring, Cabal, containers, cryptohash-sha256, directory
@@ -108355,6 +108593,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haddock_2_23_1" = callPackage
+    ({ mkDerivation, base, filepath, haddock-api }:
+     mkDerivation {
+       pname = "haddock";
+       version = "2.23.1";
+       sha256 = "129lwai4609f910h7yhmmm1rbqzjla9rcg5dpzqihydsjyw5ii1s";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base haddock-api ];
+       testHaskellDepends = [ base filepath ];
+       doCheck = false;
+       preCheck = "unset GHC_PACKAGE_PATH";
+       description = "A documentation-generation tool for Haskell libraries";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haddock" = callPackage
     ({ mkDerivation, base, filepath, haddock-api }:
      mkDerivation {
@@ -108371,25 +108626,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "haddock-api_2_22_0" = callPackage
-    ({ mkDerivation, array, base, bytestring, Cabal, containers
-     , deepseq, directory, filepath, ghc, ghc-boot, ghc-paths
-     , haddock-library, hspec, hspec-discover, QuickCheck, transformers
-     , xhtml
+  "haddock-api_2_23_1" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, deepseq
+     , directory, filepath, ghc, ghc-boot, ghc-paths, haddock-library
+     , hspec, hspec-discover, QuickCheck, transformers, xhtml
      }:
      mkDerivation {
        pname = "haddock-api";
-       version = "2.22.0";
-       sha256 = "149q4zlf4m7wcrr4af2n2flh0jxjsypshbc229vsj1m0kmz4z014";
+       version = "2.23.1";
+       sha256 = "14dl17ajlr8354rmc49w4fsqxmrn0dl7wps3r4iipms5nhj5bm3d";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base bytestring Cabal containers deepseq directory filepath
-         ghc ghc-boot ghc-paths haddock-library transformers xhtml
+         array base bytestring containers deepseq directory filepath ghc
+         ghc-boot ghc-paths haddock-library transformers xhtml
        ];
        testHaskellDepends = [
-         array base bytestring Cabal containers deepseq directory filepath
-         ghc ghc-boot ghc-paths haddock-library hspec QuickCheck
-         transformers xhtml
+         array base bytestring containers deepseq directory filepath ghc
+         ghc-boot ghc-paths haddock-library hspec QuickCheck transformers
+         xhtml
        ];
        testToolDepends = [ hspec-discover ];
        description = "A documentation-generation tool for Haskell libraries";
@@ -109913,8 +110167,8 @@ self: {
     ({ mkDerivation, base, containers, random }:
      mkDerivation {
        pname = "hanabi-dealer";
-       version = "0.8.0.0";
-       sha256 = "0rlp5s8pgn9m7yblqpnjh2z7sy88m5zh7makjfvnxlrcl0bx0c52";
+       version = "0.9.0.0";
+       sha256 = "0bh2j0iz55g633lgm9zzlgq6419p0aabcpbhq1p7gj1bf7s2l1wm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers random ];
@@ -115153,37 +115407,35 @@ self: {
      , 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, resourcet, rocksdb-haskell, rocksdb-query
-     , scotty, string-conversions, text, time, transformers, unliftio
+     , QuickCheck, random, rocksdb-haskell, rocksdb-query, scotty
+     , string-conversions, text, time, transformers, unliftio
      , unordered-containers, wai, warp
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.21.2";
-       sha256 = "0316bipi2y9ylac4yw1sm9xn8zid0cjr620qmhlk4cy4qhbgqfrz";
+       version = "0.22.2";
+       sha256 = "0h073f67rhp4w78lnn7vgg0v2i5p6cv1af16b80g3a55bd6mwkla";
        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 QuickCheck random resourcet
-         rocksdb-haskell rocksdb-query scotty string-conversions text time
-         transformers unliftio unordered-containers wai warp
+         monad-logger mtl network nqe random rocksdb-haskell 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 hedis
-         http-types monad-logger mtl network nqe optparse-applicative
-         QuickCheck random resourcet rocksdb-haskell rocksdb-query scotty
-         string-conversions text time transformers unliftio
-         unordered-containers wai warp
+         deepseq filepath hashable haskoin-core monad-logger mtl nqe
+         optparse-applicative random string-conversions text time
+         transformers unliftio unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring cereal conduit containers data-default
          deepseq hashable haskoin-core haskoin-node hedis hspec http-types
-         monad-logger mtl network nqe QuickCheck random resourcet
-         rocksdb-haskell rocksdb-query scotty string-conversions text time
-         transformers unliftio unordered-containers wai warp
+         monad-logger mtl network nqe QuickCheck random rocksdb-haskell
+         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";
@@ -117208,7 +117460,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
+     }) {inherit (pkgs) blas; liblapack = null;};
 
   "hblock" = callPackage
     ({ mkDerivation, aeson, base, blaze-markup, bytestring, cereal
@@ -121063,32 +121315,33 @@ self: {
 
   "hid-examples" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, bytestring, cassava
-     , Chart, Chart-diagrams, data-default, directory, doctest, extra
-     , filepath, fmt, hedgehog, hint, http-client, mtl
-     , optparse-applicative, random, req, safe, safe-exceptions, split
-     , system-locale, tasty, tasty-golden, tasty-hedgehog, tasty-hspec
-     , text, time, transformers, unix-compat
+     , Chart, Chart-diagrams, containers, criterion, deepseq, directory
+     , doctest, extra, filepath, fingertree, fmt, hedgehog, hint
+     , http-client, mtl, optparse-applicative, random, req, safe
+     , safe-exceptions, split, tasty, tasty-golden, tasty-hedgehog
+     , tasty-hspec, text, time, transformers, unix-compat
      }:
      mkDerivation {
        pname = "hid-examples";
-       version = "0.4";
-       sha256 = "11r2ln131axkw31afki3jnrz1md668z0qnvx915qwyppga62rk8l";
+       version = "0.5";
+       sha256 = "1hs0cpls8x89dvv0ws1swagz92vrfcn84nw7jdaidc850168dygx";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base hedgehog safe safe-exceptions split
+         base fingertree hedgehog safe safe-exceptions split
        ];
        executableHaskellDepends = [
          aeson base blaze-html bytestring cassava Chart Chart-diagrams
-         data-default directory extra filepath fmt hedgehog hint http-client
-         mtl optparse-applicative random req safe safe-exceptions
-         system-locale text time transformers unix-compat
+         containers directory extra filepath fmt hedgehog hint http-client
+         mtl optparse-applicative random req safe safe-exceptions text time
+         transformers unix-compat
        ];
        testHaskellDepends = [
          base doctest filepath hedgehog tasty tasty-golden tasty-hedgehog
          tasty-hspec
        ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
        doHaddock = false;
        description = "Examples to accompany the book \"Haskell in Depth\"";
        license = stdenv.lib.licenses.bsd3;
@@ -123562,7 +123815,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) liblapack;};
+     }) {liblapack = null;};
 
   "hmatrix-csv" = callPackage
     ({ mkDerivation, base, bytestring, cassava, hmatrix, vector }:
@@ -123651,7 +123904,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
+     }) {inherit (pkgs) blas; liblapack = null;};
 
   "hmatrix-nipals" = callPackage
     ({ mkDerivation, base, hmatrix }:
@@ -129245,22 +129498,6 @@ self: {
      }) {};
 
   "hsebaysdk" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, http-client, http-types
-     , text, time, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "hsebaysdk";
-       version = "0.4.0.0";
-       sha256 = "00c9vwlmx4i2a436ajznv1bwaqj5lgq05gpc928vn59v27gx0f07";
-       libraryHaskellDepends = [
-         aeson base bytestring http-client http-types text time transformers
-         unordered-containers
-       ];
-       description = "Haskell eBay SDK";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hsebaysdk_0_4_1_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client
      , http-client-tls, http-types, text, time, transformers
      , unordered-containers
@@ -129275,7 +129512,6 @@ self: {
        ];
        description = "Haskell eBay SDK";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hsemail" = callPackage
@@ -129527,8 +129763,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) blas; inherit (pkgs) gsl; 
-         inherit (pkgs) liblapack;};
+     }) {inherit (pkgs) blas; inherit (pkgs) gsl; liblapack = null;};
 
   "hsilop" = callPackage
     ({ mkDerivation, base, directory, filepath, haskeline, xdg-basedir
@@ -134372,19 +134607,23 @@ self: {
      }) {};
 
   "hurl" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, containers
-     , directory, filepath, http-client, http-client-tls, http-types
-     , network-uri, process, text, xml-conduit, zlib
+    ({ mkDerivation, async, base, base64-bytestring, bytestring
+     , connection, containers, directory, filepath, http-client
+     , http-client-tls, http-types, network-uri, process, text
+     , xml-conduit, zlib
      }:
      mkDerivation {
        pname = "hurl";
-       version = "1.3.0.0";
-       sha256 = "1fb70wsqpy5jq5w8vrd0qszrpg670mfh25kw4ldapiw652az7w69";
+       version = "1.4.1.0";
+       sha256 = "1n7688m5n5f62h59jjh2w5aa4ir87ni3x9wqnkc902crsqrgj2js";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base base64-bytestring bytestring containers directory filepath
-         http-client http-client-tls http-types network-uri process text
-         xml-conduit zlib
+         async base base64-bytestring bytestring connection containers
+         directory filepath http-client http-client-tls http-types
+         network-uri process text xml-conduit zlib
        ];
+       executableHaskellDepends = [ base directory network-uri ];
        description = "Haskell URL resolver";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -134639,33 +134878,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-balancedparens";
-       version = "0.3.0.5";
-       sha256 = "0mc1qxng09891rpdw8g6cbx61b7pvvd7v4jm3ngzi5byamm0sbxp";
-       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_3_1_0" = 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 = [
@@ -134683,7 +134895,6 @@ self: {
        doHaddock = false;
        description = "Balanced parentheses";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-bits" = callPackage
@@ -134693,29 +134904,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-bits";
-       version = "0.7.1.5";
-       sha256 = "0gvbsnirlgsj58363zqg960j0ydx2bhgw4lwql71jf9kg7hd4kqb";
-       libraryHaskellDepends = [
-         base bitvec bytestring deepseq hw-int hw-prim hw-string-parse
-         vector
-       ];
-       testHaskellDepends = [
-         base bitvec bytestring doctest doctest-discover hedgehog hspec
-         hw-hspec-hedgehog hw-prim vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [ base criterion vector ];
-       description = "Bit manipulation";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-bits_0_7_2_0" = callPackage
-    ({ mkDerivation, base, bitvec, bytestring, criterion, deepseq
-     , doctest, doctest-discover, hedgehog, hspec, hspec-discover
-     , hw-hspec-hedgehog, hw-int, hw-prim, hw-string-parse, vector
-     }:
-     mkDerivation {
-       pname = "hw-bits";
        version = "0.7.2.0";
        sha256 = "1i985qgcvwphawh91qh2r1wvh8y4kfa7s7wwwr92pgw4qsrvfkzi";
        libraryHaskellDepends = [
@@ -134730,7 +134918,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Bit manipulation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-ci-assist" = callPackage
@@ -134758,28 +134945,6 @@ self: {
 
   "hw-conduit" = callPackage
     ({ mkDerivation, array, base, bytestring, conduit
-     , conduit-combinators, criterion, hspec, hspec-discover, mmap, time
-     , transformers, unliftio-core, vector, word8
-     }:
-     mkDerivation {
-       pname = "hw-conduit";
-       version = "0.2.0.6";
-       sha256 = "0z90nslvvd5lkzkivklln3kbpgpwn4l6b45bdn7nhn9qa50ii1rc";
-       libraryHaskellDepends = [
-         array base bytestring conduit conduit-combinators time transformers
-         unliftio-core word8
-       ];
-       testHaskellDepends = [ base bytestring conduit hspec ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring conduit criterion mmap vector
-       ];
-       description = "Conduits for tokenizing streams";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "hw-conduit_0_2_1_0" = callPackage
-    ({ mkDerivation, array, base, bytestring, conduit
      , conduit-combinators, criterion, doctest, doctest-discover, hspec
      , hspec-discover, mmap, time, transformers, unliftio-core, vector
      , word8
@@ -134801,29 +134966,10 @@ self: {
        ];
        description = "Conduits for tokenizing streams";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-conduit-merges" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-extra, hspec
-     , mtl, QuickCheck
-     }:
-     mkDerivation {
-       pname = "hw-conduit-merges";
-       version = "0.2.0.0";
-       sha256 = "1302b2dsvv8yazvq5vz9cs2fbqvdsh6zyprijb41g881riqa5klv";
-       revision = "1";
-       editedCabalFile = "1azji7zc0ygqjgd2shbqw7p8a2ll2qp3b1yq5i3665448brlwpvc";
-       libraryHaskellDepends = [ base conduit conduit-extra mtl ];
-       testHaskellDepends = [
-         base bytestring conduit conduit-extra hspec mtl QuickCheck
-       ];
-       description = "Additional merges and joins for Conduit";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-conduit-merges_0_2_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, conduit, conduit-extra, hspec
      , hspec-discover, mtl, QuickCheck
      }:
      mkDerivation {
@@ -134837,21 +134983,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Additional merges and joins for Conduit";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-diagnostics" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "hw-diagnostics";
-       version = "0.0.0.7";
-       sha256 = "1wfmrdpkvk2p045xchvwhnd1glq527ksgg0bs2qg5r0nyhsg55zi";
-       libraryHaskellDepends = [ base ];
-       description = "Diagnostics library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-diagnostics_0_0_1_0" = callPackage
     ({ mkDerivation, base, doctest, doctest-discover }:
      mkDerivation {
        pname = "hw-diagnostics";
@@ -134862,7 +134996,6 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "Diagnostics library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-dsv" = callPackage
@@ -134871,46 +135004,6 @@ self: {
      , generic-lens, ghc-prim, hedgehog, hspec, hspec-discover, hw-bits
      , hw-hspec-hedgehog, hw-ip, hw-prim, hw-rankselect
      , hw-rankselect-base, hw-simd, lens, mmap, optparse-applicative
-     , resourcet, text, vector, weigh
-     }:
-     mkDerivation {
-       pname = "hw-dsv";
-       version = "0.4.0";
-       sha256 = "1cpjfq3z4q5wmnlaskrzxhyybb07andc7gli7vv7njm9552bwyvf";
-       revision = "2";
-       editedCabalFile = "167zvbxwjmb25xmhcdhrshk03b98kh5ldrf2b6a4v8xlkj4p33qm";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bits-extra bytestring deepseq ghc-prim hw-bits hw-prim
-         hw-rankselect hw-rankselect-base hw-simd vector
-       ];
-       executableHaskellDepends = [
-         appar base bits-extra bytestring deepseq generic-lens ghc-prim
-         hedgehog hw-bits hw-ip hw-prim hw-rankselect hw-rankselect-base
-         hw-simd lens optparse-applicative resourcet text vector
-       ];
-       testHaskellDepends = [
-         base bits-extra bytestring cassava deepseq directory doctest
-         doctest-discover ghc-prim hedgehog hspec hw-bits hw-hspec-hedgehog
-         hw-prim hw-rankselect hw-rankselect-base hw-simd text vector weigh
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bits-extra bytestring cassava criterion deepseq directory
-         ghc-prim hw-bits hw-prim hw-rankselect hw-rankselect-base hw-simd
-         mmap vector
-       ];
-       description = "Unbelievably fast streaming DSV file parser";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-dsv_0_4_1_0" = callPackage
-    ({ mkDerivation, appar, base, bits-extra, bytestring, cassava
-     , criterion, deepseq, directory, doctest, doctest-discover
-     , generic-lens, ghc-prim, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-hspec-hedgehog, hw-ip, hw-prim, hw-rankselect
-     , hw-rankselect-base, hw-simd, lens, mmap, optparse-applicative
      , resourcet, text, transformers, vector, weigh
      }:
      mkDerivation {
@@ -134942,7 +135035,6 @@ self: {
        ];
        description = "Unbelievably fast streaming DSV file parser";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-dump" = callPackage
@@ -134978,43 +135070,6 @@ self: {
 
   "hw-eliasfano" = callPackage
     ({ mkDerivation, base, binary, bytestring, criterion, deepseq
-     , generic-lens, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-hedgehog, hw-hspec-hedgehog, hw-int, hw-packed-vector, hw-prim
-     , hw-rankselect, hw-rankselect-base, lens, mmap
-     , optparse-applicative, resourcet, temporary-resourcet, vector
-     }:
-     mkDerivation {
-       pname = "hw-eliasfano";
-       version = "0.1.1.1";
-       sha256 = "0fmbcddw13m49xvw8gnpjh246mw4k9h3hr94k956bi1vdvywyqv7";
-       revision = "1";
-       editedCabalFile = "1i5in5h9jnx4p873qv80jmdd1ak6yyyf70002j3lhxyaxx9byy7k";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base deepseq hw-bits hw-int hw-packed-vector hw-prim hw-rankselect
-         hw-rankselect-base temporary-resourcet vector
-       ];
-       executableHaskellDepends = [
-         base binary bytestring generic-lens hw-bits hw-packed-vector
-         hw-prim hw-rankselect hw-rankselect-base lens optparse-applicative
-         resourcet temporary-resourcet vector
-       ];
-       testHaskellDepends = [
-         base hedgehog hspec hw-bits hw-hedgehog hw-hspec-hedgehog hw-int
-         hw-packed-vector hw-prim hw-rankselect hw-rankselect-base vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion hedgehog hspec hw-bits hw-hedgehog
-         hw-hspec-hedgehog hw-int hw-packed-vector hw-prim mmap vector
-       ];
-       description = "Elias-Fano";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-eliasfano_0_1_2_0" = callPackage
-    ({ mkDerivation, base, binary, bytestring, criterion, deepseq
      , doctest, doctest-discover, generic-lens, hedgehog, hspec
      , hspec-discover, hw-bits, hw-hedgehog, hw-hspec-hedgehog, hw-int
      , hw-packed-vector, hw-prim, hw-rankselect, hw-rankselect-base
@@ -135048,7 +135103,6 @@ self: {
        ];
        description = "Elias-Fano";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-excess" = callPackage
@@ -135059,33 +135113,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-excess";
-       version = "0.2.2.3";
-       sha256 = "1rlw53nbhjdvjqb1f0kacnmiiwhx04az6p4mf0iv5fwxcjh94q2r";
-       revision = "1";
-       editedCabalFile = "1bll4amizah25w4c6xplndig77hd6jh65q6zjyr5x4vr11vg6xbx";
-       libraryHaskellDepends = [
-         base hw-bits hw-prim hw-rankselect-base safe vector
-       ];
-       testHaskellDepends = [
-         base doctest doctest-discover hedgehog hspec hw-bits
-         hw-hspec-hedgehog hw-prim QuickCheck vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion hw-prim vector
-       ];
-       description = "Excess";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-excess_0_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, doctest
-     , doctest-discover, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-hspec-hedgehog, hw-prim, hw-rankselect-base, QuickCheck, safe
-     , vector
-     }:
-     mkDerivation {
-       pname = "hw-excess";
        version = "0.2.3.0";
        sha256 = "0xiyf3xyg6f4kgkils9ycx6q0qcsbd6rw4m9lizw9295mnp05s3g";
        libraryHaskellDepends = [
@@ -135101,27 +135128,9 @@ self: {
        ];
        description = "Excess";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-fingertree" = callPackage
-    ({ mkDerivation, base, deepseq, hedgehog, hspec, hspec-discover
-     , hw-hspec-hedgehog, hw-prim
-     }:
-     mkDerivation {
-       pname = "hw-fingertree";
-       version = "0.1.1.1";
-       sha256 = "01ghnnnbbrdy9s84rcw37v3yvlrw5awgdmcrzh0xd5dxpw557psf";
-       libraryHaskellDepends = [ base deepseq hw-prim ];
-       testHaskellDepends = [
-         base deepseq hedgehog hspec hw-hspec-hedgehog
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Generic finger-tree structure, with example instances";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-fingertree_0_1_2_0" = callPackage
     ({ mkDerivation, base, deepseq, doctest, doctest-discover, hedgehog
      , hspec, hspec-discover, hw-hspec-hedgehog, hw-prim
      }:
@@ -135137,31 +135146,9 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Generic finger-tree structure, with example instances";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-fingertree-strict" = callPackage
-    ({ mkDerivation, base, deepseq, hedgehog, hspec, hspec-discover
-     , HUnit, hw-hspec-hedgehog, QuickCheck, test-framework
-     , test-framework-hunit, test-framework-quickcheck2
-     }:
-     mkDerivation {
-       pname = "hw-fingertree-strict";
-       version = "0.1.1.3";
-       sha256 = "1fy492nl10a7p9a0b0jrqj1yiar8wir2g3qms2mmd814brbfkm80";
-       revision = "1";
-       editedCabalFile = "1s7fcimgyf0vskkkms371icazjkkmscv9bkz2ysdhx708bza96v5";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [
-         base hedgehog hspec HUnit hw-hspec-hedgehog QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Generic strict finger-tree structure";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-fingertree-strict_0_1_2_0" = callPackage
     ({ mkDerivation, base, deepseq, doctest, doctest-discover, hedgehog
      , hspec, hspec-discover, HUnit, hw-hspec-hedgehog, QuickCheck
      , test-framework, test-framework-hunit, test-framework-quickcheck2
@@ -135179,22 +135166,9 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Generic strict finger-tree structure";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-hedgehog" = callPackage
-    ({ mkDerivation, base, hedgehog, vector }:
-     mkDerivation {
-       pname = "hw-hedgehog";
-       version = "0.1.0.5";
-       sha256 = "1wnfgmybccznrm2i6rrkg87mwxqng9y115wsbf4r40y6pica7kbi";
-       libraryHaskellDepends = [ base hedgehog vector ];
-       testHaskellDepends = [ base ];
-       description = "Extra hedgehog functionality";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-hedgehog_0_1_1_0" = callPackage
     ({ mkDerivation, base, doctest, doctest-discover, hedgehog, vector
      }:
      mkDerivation {
@@ -135206,27 +135180,9 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "Extra hedgehog functionality";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-hspec-hedgehog" = callPackage
-    ({ mkDerivation, base, call-stack, hedgehog, hspec, hspec-discover
-     , HUnit, transformers
-     }:
-     mkDerivation {
-       pname = "hw-hspec-hedgehog";
-       version = "0.1.0.9";
-       sha256 = "1rfcz7fq7gp8xxlax8l1vfr88h9sh50ghs1iihy9jqv135d1dbky";
-       libraryHaskellDepends = [
-         base call-stack hedgehog hspec HUnit transformers
-       ];
-       testHaskellDepends = [ base call-stack hedgehog hspec HUnit ];
-       testToolDepends = [ hspec-discover ];
-       description = "Interoperability between hspec and hedgehog";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-hspec-hedgehog_0_1_1_0" = callPackage
     ({ mkDerivation, base, call-stack, doctest, doctest-discover
      , hedgehog, hspec, hspec-discover, HUnit, transformers
      }:
@@ -135243,27 +135199,9 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Interoperability between hspec and hedgehog";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-int" = callPackage
-    ({ mkDerivation, base, hedgehog, hspec, hspec-discover, hw-hedgehog
-     , hw-hspec-hedgehog
-     }:
-     mkDerivation {
-       pname = "hw-int";
-       version = "0.0.0.4";
-       sha256 = "0im0fk23v6gh6hwfr35swai5fnvkpw0rrssc3s0ac978c899a8iz";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base hedgehog hspec hw-hedgehog hw-hspec-hedgehog
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Additional facilities for Integers";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-int_0_0_1_0" = callPackage
     ({ mkDerivation, base, doctest, doctest-discover, hedgehog, hspec
      , hspec-discover, hw-hedgehog, hw-hspec-hedgehog
      }:
@@ -135279,7 +135217,6 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Additional facilities for Integers";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-ip" = callPackage
@@ -135290,37 +135227,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-ip";
-       version = "2.4.1.0";
-       sha256 = "1zjl078xzing927fwwpck36ib8z5aggpi7g0z5gnhxd8isgqs6zh";
-       revision = "1";
-       editedCabalFile = "1dg3aa6wavdr3vh7va3yx3j272pb4zw48rm7r5a6xv6xrrd01a33";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         appar base containers generic-lens hedgehog hw-bits iproute text
-       ];
-       executableHaskellDepends = [
-         appar base binary bytestring generic-lens lens optparse-applicative
-         text
-       ];
-       testHaskellDepends = [
-         appar base doctest doctest-discover generic-lens hedgehog hspec
-         hw-bits hw-hspec-hedgehog text
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       doHaddock = false;
-       description = "Library for manipulating IP addresses and CIDR blocks";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-ip_2_4_2_0" = callPackage
-    ({ mkDerivation, appar, base, binary, bytestring, containers
-     , doctest, doctest-discover, generic-lens, hedgehog, hspec
-     , hspec-discover, hw-bits, hw-hspec-hedgehog, iproute, lens
-     , optparse-applicative, text
-     }:
-     mkDerivation {
-       pname = "hw-ip";
        version = "2.4.2.0";
        sha256 = "1bvh4fkg1ffr3y8wink62rgkynlcgjhmra7a4w01h1dmw1vb2vfx";
        isLibrary = true;
@@ -135340,53 +135246,10 @@ self: {
        doHaddock = false;
        description = "Library for manipulating IP addresses and CIDR blocks";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-json" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
-     , bits-extra, bytestring, criterion, directory, dlist, generic-lens
-     , hedgehog, hspec, hspec-discover, hw-balancedparens, hw-bits
-     , hw-hspec-hedgehog, hw-json-simd, hw-json-simple-cursor
-     , hw-json-standard-cursor, hw-mquery, hw-parser, hw-prim
-     , hw-rankselect, hw-rankselect-base, hw-simd, lens, mmap
-     , optparse-applicative, scientific, text, transformers, vector
-     , word8
-     }:
-     mkDerivation {
-       pname = "hw-json";
-       version = "1.3.1.1";
-       sha256 = "0w0k8zkswpvawp3ni3av8ak18a8wj509dll0v3cq7i4lljv51b5l";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson ansi-wl-pprint attoparsec base bits-extra bytestring dlist
-         hw-balancedparens hw-bits hw-json-simple-cursor
-         hw-json-standard-cursor hw-mquery hw-parser hw-prim hw-rankselect
-         hw-rankselect-base hw-simd mmap text vector word8
-       ];
-       executableHaskellDepends = [
-         base bytestring dlist generic-lens hw-balancedparens hw-json-simd
-         hw-json-simple-cursor hw-json-standard-cursor hw-mquery hw-prim
-         hw-rankselect hw-rankselect-base lens mmap optparse-applicative
-         text vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base bytestring 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
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion directory hw-json-standard-cursor mmap
-       ];
-       description = "Memory efficient JSON parser";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-json_1_3_2_0" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
      , bits-extra, bytestring, criterion, directory, dlist, doctest
      , doctest-discover, generic-lens, hedgehog, hspec, hspec-discover
      , hw-balancedparens, hw-bits, hw-hspec-hedgehog, hw-json-simd
@@ -135425,7 +135288,6 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-json-lens" = callPackage
@@ -135456,26 +135318,6 @@ self: {
      }) {};
 
   "hw-json-simd" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, hw-prim, lens
-     , optparse-applicative, vector
-     }:
-     mkDerivation {
-       pname = "hw-json-simd";
-       version = "0.1.0.4";
-       sha256 = "1qpk7vzya28y56qlb2fmx3ic39n9x2z8dh932rn0fp2d8n4dw8sa";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base bytestring hw-prim lens vector ];
-       libraryToolDepends = [ c2hs ];
-       executableHaskellDepends = [
-         base bytestring hw-prim lens optparse-applicative vector
-       ];
-       testHaskellDepends = [ base bytestring hw-prim lens vector ];
-       description = "SIMD-based JSON semi-indexer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-json-simd_0_1_1_0" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, doctest, doctest-discover
      , hw-prim, lens, optparse-applicative, transformers, vector
      }:
@@ -135497,44 +135339,9 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "SIMD-based JSON semi-indexer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-json-simple-cursor" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, directory
-     , 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-simple-cursor";
-       version = "0.1.0.2";
-       sha256 = "1yknymn8flni5bkfifaxmkv6b6r530ljvm6vx9m3kqwzikly9lpn";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring hw-balancedparens hw-bits hw-prim hw-rankselect
-         hw-rankselect-base 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 bytestring hedgehog hspec hw-balancedparens hw-bits
-         hw-hspec-hedgehog hw-prim hw-rankselect hw-rankselect-base vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion directory mmap
-       ];
-       description = "Memory efficient JSON parser";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-json-simple-cursor_0_1_1_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, directory, doctest
      , doctest-discover, generic-lens, hedgehog, hspec, hspec-discover
      , hw-balancedparens, hw-bits, hw-hspec-hedgehog, hw-json-simd
@@ -135567,7 +135374,6 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-json-standard-cursor" = callPackage
@@ -135580,43 +135386,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-json-standard-cursor";
-       version = "0.2.1.3";
-       sha256 = "1809nrw3wlbsysq3dxq9igg2yi3qafkv34jx3vn7qq5rw541qlxv";
-       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;
-     }) {};
-
-  "hw-json-standard-cursor_0_2_2_0" = 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.2.0";
        sha256 = "0rj0p3p2b5ghyyfkzvaivzcdsmnjxvqm16n94qpwacaszyca8hny";
        isLibrary = true;
@@ -135642,7 +135411,6 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-kafka-avro" = callPackage
@@ -135722,28 +135490,6 @@ self: {
      }) {};
 
   "hw-mquery" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, dlist, hedgehog, hspec
-     , hspec-discover, hw-hspec-hedgehog, lens, semigroups
-     }:
-     mkDerivation {
-       pname = "hw-mquery";
-       version = "0.2.0.2";
-       sha256 = "1vcxyin3cyc0pkhbfjyjm4r44yxk17gny5jhfg6hdlgivp150yij";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-wl-pprint base dlist lens semigroups
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base dlist hedgehog hspec hw-hspec-hedgehog lens
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Monadic query DSL";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-mquery_0_2_1_0" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, dlist, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover
      , hw-hspec-hedgehog, lens
@@ -135763,42 +135509,10 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Monadic query DSL";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-packed-vector" = callPackage
     ({ mkDerivation, base, binary, bytestring, criterion, deepseq
-     , directory, generic-lens, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-hedgehog, hw-hspec-hedgehog, hw-prim, lens
-     , optparse-applicative, vector
-     }:
-     mkDerivation {
-       pname = "hw-packed-vector";
-       version = "0.2.0.1";
-       sha256 = "12181b9fp11cdgf6xngjla9012j8rag3zcssz70x5a7xxgnwfmfc";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring deepseq hw-bits hw-prim vector
-       ];
-       executableHaskellDepends = [
-         base binary bytestring generic-lens hw-bits hw-prim lens
-         optparse-applicative vector
-       ];
-       testHaskellDepends = [
-         base bytestring hedgehog hspec hw-bits hw-hedgehog
-         hw-hspec-hedgehog hw-prim vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base criterion directory hedgehog hspec hw-prim vector
-       ];
-       description = "Packed Vector";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-packed-vector_0_2_1_0" = callPackage
-    ({ mkDerivation, base, binary, bytestring, criterion, deepseq
      , directory, doctest, doctest-discover, generic-lens, hedgehog
      , hspec, hspec-discover, hw-bits, hw-hedgehog, hw-hspec-hedgehog
      , hw-prim, lens, optparse-applicative, vector
@@ -135826,27 +135540,9 @@ self: {
        ];
        description = "Packed Vector";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-parser" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, hedgehog, hspec
-     , hspec-discover, hw-hspec-hedgehog, hw-prim, text
-     }:
-     mkDerivation {
-       pname = "hw-parser";
-       version = "0.1.0.2";
-       sha256 = "170dk943s2jbqqggxxfjxj23fbfk1532hgsrg63mr0v1ag9hlz1i";
-       libraryHaskellDepends = [
-         attoparsec base bytestring hw-prim text
-       ];
-       testHaskellDepends = [ base hedgehog hspec hw-hspec-hedgehog ];
-       testToolDepends = [ hspec-discover ];
-       description = "Simple parser support";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-parser_0_1_1_0" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover
      , hw-hspec-hedgehog, hw-prim, text
@@ -135864,41 +135560,11 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Simple parser support";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-prim" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, directory
      , doctest, doctest-discover, exceptions, ghc-prim, hedgehog, hspec
-     , hspec-discover, hw-hspec-hedgehog, mmap, QuickCheck, semigroups
-     , transformers, unliftio-core, vector
-     }:
-     mkDerivation {
-       pname = "hw-prim";
-       version = "0.6.2.40";
-       sha256 = "0vm5mcnlb5yas2z7rvzd1kzv39d3qw4bkrkfmv0i7vsdg33yb3fd";
-       revision = "3";
-       editedCabalFile = "14a8a1rfczi196nka364w6prjx1zddwf1iq265w5qcl0d1jmj679";
-       libraryHaskellDepends = [
-         base bytestring deepseq ghc-prim mmap semigroups transformers
-         unliftio-core vector
-       ];
-       testHaskellDepends = [
-         base bytestring directory doctest doctest-discover exceptions
-         hedgehog hspec hw-hspec-hedgehog mmap QuickCheck semigroups
-         transformers vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion mmap semigroups transformers vector
-       ];
-       description = "Primitive functions and data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-prim_0_6_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deepseq, directory
-     , doctest, doctest-discover, exceptions, ghc-prim, hedgehog, hspec
      , hspec-discover, hw-hspec-hedgehog, mmap, QuickCheck, transformers
      , unliftio-core, vector
      }:
@@ -135921,7 +135587,6 @@ self: {
        ];
        description = "Primitive functions and data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-prim-bits" = callPackage
@@ -135954,45 +135619,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-rankselect";
-       version = "0.13.3.2";
-       sha256 = "1p4b5nm8mgxlc7p5gcwh6dy85xgydpbw999zv27755dbfcv9nk4v";
-       revision = "2";
-       editedCabalFile = "13j391km170abxa74l5vda6aw1ad409p74yyxanizz97cjhjwdwb";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base deepseq hedgehog hspec hw-balancedparens hw-bits hw-fingertree
-         hw-prim hw-rankselect-base vector
-       ];
-       executableHaskellDepends = [
-         base directory generic-lens hw-bits hw-prim hw-rankselect-base lens
-         mmap mtl optparse-applicative vector
-       ];
-       testHaskellDepends = [
-         base directory doctest doctest-discover hedgehog hspec hw-bits
-         hw-hedgehog hw-hspec-hedgehog hw-prim hw-rankselect-base mmap
-         QuickCheck transformers vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring conduit criterion directory hw-bits hw-prim
-         hw-rankselect-base mmap resourcet vector
-       ];
-       doHaddock = false;
-       description = "Rank-select";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-rankselect_0_13_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, conduit, criterion, deepseq
-     , directory, doctest, doctest-discover, generic-lens, hedgehog
-     , hspec, hspec-discover, hw-balancedparens, hw-bits, hw-fingertree
-     , hw-hedgehog, hw-hspec-hedgehog, hw-prim, hw-rankselect-base, lens
-     , mmap, mtl, optparse-applicative, QuickCheck, resourcet
-     , transformers, vector
-     }:
-     mkDerivation {
-       pname = "hw-rankselect";
        version = "0.13.4.0";
        sha256 = "0chk3n4vb55px943w0l3q7pxhgbvqm64vn7lkhi7k0l2dpybycp7";
        isLibrary = true;
@@ -136018,37 +135644,9 @@ self: {
        doHaddock = false;
        description = "Rank-select";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-rankselect-base" = callPackage
-    ({ mkDerivation, base, bits-extra, bitvec, criterion, hedgehog
-     , hspec, hspec-discover, hw-bits, hw-hedgehog, hw-hspec-hedgehog
-     , hw-int, hw-prim, hw-string-parse, QuickCheck, vector
-     }:
-     mkDerivation {
-       pname = "hw-rankselect-base";
-       version = "0.3.3.0";
-       sha256 = "17h4kmi9zcgm4sdpbmqh6rzygz7w0v95lfc6rmhc9a8bmmg30i5b";
-       revision = "1";
-       editedCabalFile = "03svpzjia8mbgy33lhmjhwpd6yq0n97l3fkmfnpyi3blc3yb3bd0";
-       libraryHaskellDepends = [
-         base bits-extra bitvec hw-bits hw-int hw-prim hw-string-parse
-         vector
-       ];
-       testHaskellDepends = [
-         base bits-extra bitvec hedgehog hspec hw-bits hw-hedgehog
-         hw-hspec-hedgehog hw-prim QuickCheck vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bits-extra criterion hw-bits hw-prim vector
-       ];
-       description = "Rank-select base";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-rankselect-base_0_3_4_0" = callPackage
     ({ mkDerivation, base, bits-extra, bitvec, criterion, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover, hw-bits
      , hw-hedgehog, hw-hspec-hedgehog, hw-int, hw-prim, hw-string-parse
@@ -136072,41 +135670,10 @@ self: {
        ];
        description = "Rank-select base";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-simd" = callPackage
     ({ mkDerivation, base, bits-extra, bytestring, c2hs, cassava
-     , containers, criterion, deepseq, directory, hedgehog, hspec
-     , hspec-discover, hw-bits, hw-hedgehog, hw-hspec-hedgehog, hw-prim
-     , hw-rankselect, hw-rankselect-base, lens, mmap, text, vector
-     }:
-     mkDerivation {
-       pname = "hw-simd";
-       version = "0.1.1.5";
-       sha256 = "0nhy3hi7gxbbjwh6rj4459nzbmlij2cjdg2zvdjgx3z3j5algqyb";
-       libraryHaskellDepends = [
-         base bits-extra bytestring deepseq hw-bits hw-prim hw-rankselect
-         hw-rankselect-base vector
-       ];
-       libraryToolDepends = [ c2hs ];
-       testHaskellDepends = [
-         base bits-extra bytestring deepseq directory hedgehog hspec hw-bits
-         hw-hedgehog hw-hspec-hedgehog hw-prim hw-rankselect
-         hw-rankselect-base lens text vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bits-extra bytestring cassava containers criterion deepseq
-         directory hw-bits hw-prim hw-rankselect hw-rankselect-base mmap
-         vector
-       ];
-       description = "SIMD library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-simd_0_1_2_0" = callPackage
-    ({ mkDerivation, base, bits-extra, bytestring, c2hs, cassava
      , containers, criterion, deepseq, directory, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover, hw-bits
      , hw-hedgehog, hw-hspec-hedgehog, hw-prim, hw-rankselect
@@ -136135,40 +135702,9 @@ self: {
        ];
        description = "SIMD library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-streams" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, directory, exceptions
-     , ghc-prim, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-hspec-hedgehog, hw-prim, mmap, primitive, QuickCheck
-     , semigroups, transformers, vector
-     }:
-     mkDerivation {
-       pname = "hw-streams";
-       version = "0.0.0.12";
-       sha256 = "087sn4gxhf29vg9ydx8sfq33q16cz6cmda5r63k9xdki4ba761m4";
-       revision = "1";
-       editedCabalFile = "1y5sw9mgkxwvgf91hl22p3q5kxy99phwfmx2lh87339w7d5bjdbw";
-       libraryHaskellDepends = [
-         base bytestring ghc-prim hw-bits hw-prim mmap primitive semigroups
-         transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring directory exceptions ghc-prim hedgehog hspec
-         hw-bits hw-hspec-hedgehog hw-prim mmap primitive QuickCheck
-         semigroups transformers vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion ghc-prim hw-bits hw-prim mmap primitive
-         semigroups transformers vector
-       ];
-       description = "Primitive functions and data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-streams_0_0_1_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, directory, doctest
      , doctest-discover, exceptions, ghc-prim, hedgehog, hspec
      , hspec-discover, hw-bits, hw-hspec-hedgehog, hw-prim, mmap
@@ -136194,7 +135730,6 @@ self: {
        ];
        description = "Primitive functions and data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-string-parse" = callPackage
@@ -136276,46 +135811,6 @@ self: {
 
   "hw-xml" = callPackage
     ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
-     , bytestring, cereal, containers, criterion, deepseq, generic-lens
-     , ghc-prim, hedgehog, hspec, hspec-discover, hw-balancedparens
-     , hw-bits, hw-hspec-hedgehog, hw-parser, hw-prim, hw-rankselect
-     , hw-rankselect-base, lens, mmap, mtl, optparse-applicative
-     , resourcet, text, transformers, vector, word8
-     }:
-     mkDerivation {
-       pname = "hw-xml";
-       version = "0.5.0.0";
-       sha256 = "0cqrs19bd9yh67yczhhb1yf5dhcx2v6xikybd88vqwxdh51pxyyn";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         ansi-wl-pprint array attoparsec base bytestring cereal containers
-         deepseq ghc-prim hw-balancedparens hw-bits hw-parser hw-prim
-         hw-rankselect hw-rankselect-base lens mmap mtl resourcet text
-         transformers vector word8
-       ];
-       executableHaskellDepends = [
-         attoparsec base bytestring deepseq generic-lens hw-balancedparens
-         hw-bits hw-prim hw-rankselect lens mmap mtl optparse-applicative
-         resourcet text vector
-       ];
-       testHaskellDepends = [
-         attoparsec base bytestring hedgehog hspec hw-balancedparens hw-bits
-         hw-hspec-hedgehog hw-prim hw-rankselect hw-rankselect-base text
-         vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion hw-balancedparens hw-bits hw-prim mmap
-         resourcet vector
-       ];
-       description = "XML parser based on succinct data structures";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-xml_0_5_1_0" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
      , bytestring, cereal, containers, criterion, deepseq, doctest
      , doctest-discover, generic-lens, ghc-prim, hedgehog, hspec
      , hspec-discover, hw-balancedparens, hw-bits, hw-hspec-hedgehog
@@ -136353,7 +135848,6 @@ self: {
        ];
        description = "XML parser based on succinct data structures";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hwall-auth-iitk" = callPackage
@@ -137550,8 +137044,8 @@ self: {
        pname = "hyraxAbif";
        version = "0.2.3.21";
        sha256 = "0ghhfv8gzs9sg13nj3mhqd24zbrkjj1dgsjz3sql6276kpa1p2kc";
-       revision = "1";
-       editedCabalFile = "0rg4wldliyaixmgcyina2cnm7l6gwpcdd2bim1q83clnfk32scar";
+       revision = "2";
+       editedCabalFile = "05fnq87n1rprz3mlw89g74b1arzhldn8yqj3la04g3r3m39fh2v1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -140632,28 +140126,6 @@ self: {
      }:
      mkDerivation {
        pname = "insert-ordered-containers";
-       version = "0.2.3";
-       sha256 = "1307v5w8lzxc1pmi5dvw1d2vmfs6z253xbr0nfzcgxfjmqvj60ik";
-       libraryHaskellDepends = [
-         aeson base base-compat hashable lens optics-core optics-extra
-         semigroupoids semigroups text transformers unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base base-compat hashable lens QuickCheck semigroupoids
-         semigroups tasty tasty-quickcheck text transformers
-         unordered-containers
-       ];
-       description = "Associative containers retaining insertion order for traversals";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "insert-ordered-containers_0_2_3_1" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, hashable, lens
-     , optics-core, optics-extra, QuickCheck, semigroupoids, semigroups
-     , tasty, tasty-quickcheck, text, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "insert-ordered-containers";
        version = "0.2.3.1";
        sha256 = "020a56280mxjk9k97q2m1424m73m1sf1ccl0wm0ci9msyw2g51za";
        libraryHaskellDepends = [
@@ -140667,7 +140139,6 @@ self: {
        ];
        description = "Associative containers retaining insertion order for traversals";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "inserts" = callPackage
@@ -142164,8 +141635,8 @@ self: {
     ({ mkDerivation, base, binary, bytestring, iproute }:
      mkDerivation {
        pname = "ip2location";
-       version = "8.2.0";
-       sha256 = "01ia5647y608xr5kqkxaamhaxs39k3x81wpj8aqzf24mirkalf23";
+       version = "8.2.1";
+       sha256 = "1ccr15yn2ska5wgwlcnfpi9w1xxkly0pwqibmdl9a1ggmwfsskv0";
        libraryHaskellDepends = [ base binary bytestring iproute ];
        description = "IP2Location Haskell package for IP geolocation";
        license = stdenv.lib.licenses.mit;
@@ -142177,8 +141648,8 @@ self: {
     ({ mkDerivation, base, binary, bytestring, iproute }:
      mkDerivation {
        pname = "ip2proxy";
-       version = "2.2.0";
-       sha256 = "12j8jd0ir24xgghvmac2npf9zqfbfq7fwj1ni2xdi8p673k3d0kd";
+       version = "2.2.1";
+       sha256 = "08ywvg39n59i8p66fpapcpj722lkam7pyd38525p3w4z735d8842";
        libraryHaskellDepends = [ base binary bytestring iproute ];
        description = "IP2Proxy Haskell package for proxy detection";
        license = stdenv.lib.licenses.mit;
@@ -142929,9 +142400,9 @@ self: {
     ({ mkDerivation, base, mtl, profunctors }:
      mkDerivation {
        pname = "iso-deriving";
-       version = "0.0.6";
-       sha256 = "1kcbz4dndrxhkyx67l1z4363rizbqnwnrgcw3kbm5p5zmr914v3h";
-       libraryHaskellDepends = [ base profunctors ];
+       version = "0.0.8";
+       sha256 = "1w9fvnyanzmxs7yab9qhf3k9qy1lik7y5y5gzfv3jrxzwm0hivbi";
+       libraryHaskellDepends = [ base mtl profunctors ];
        testHaskellDepends = [ base mtl ];
        description = "Deriving via arbitrary isomorphisms";
        license = stdenv.lib.licenses.mit;
@@ -145276,8 +144747,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-autotype";
-       version = "3.0.5";
-       sha256 = "0kvbx4iyhh2r0abnswbvf862xfj08jlgvdd21xiz4zpnp2d1fx0h";
+       version = "3.1.2";
+       sha256 = "1wg1198jwgiy6yxr0msz1cvrkkv3zjx72ck3cykddy2hwx55113g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -148712,24 +148183,31 @@ self: {
      }) {};
 
   "krank" = callPackage
-    ({ mkDerivation, aeson, base, hspec, megaparsec, mtl
-     , optparse-applicative, PyF, replace-megaparsec, req
-     , safe-exceptions, text, unordered-containers, utf8-string
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , hspec-expectations, http-client, http-types, lifted-async, mtl
+     , optparse-applicative, pcre-heavy, pretty-terminal, PyF, req
+     , safe-exceptions, text, unordered-containers
      }:
      mkDerivation {
        pname = "krank";
-       version = "0.1.0";
-       sha256 = "121010sm7a2ggi1s75cy4f68z4nr2dp1i9cxq6snzbkl3dv5mmys";
+       version = "0.2.0";
+       sha256 = "0m41vyfzis6v0x7yys7xwr8yi04fydg6x2d04ispmi8mqjx0vgww";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base megaparsec mtl PyF replace-megaparsec req
-         safe-exceptions text unordered-containers utf8-string
+         aeson base bytestring containers http-client http-types
+         lifted-async mtl pcre-heavy pretty-terminal PyF req safe-exceptions
+         text unordered-containers
        ];
        executableHaskellDepends = [
-         base mtl optparse-applicative PyF safe-exceptions text
+         base containers mtl optparse-applicative pcre-heavy pretty-terminal
+         PyF text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hspec hspec-expectations
+         http-client http-types mtl pcre-heavy PyF req safe-exceptions text
+         unordered-containers
        ];
-       testHaskellDepends = [ base hspec megaparsec PyF ];
        description = "Krank checks your code source comments for important markers";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -150194,8 +149672,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-bash";
-       version = "0.9.0";
-       sha256 = "1n4icdd478b1j0rr79qyxx2g4xm8yvsplfw3mkdsskb79zmq5gga";
+       version = "0.9.2";
+       sha256 = "0pkl0cvkxhlpx492qlklizc27xw3yax6n8h27xq3bw1vlk3c0a36";
        libraryHaskellDepends = [ base parsec prettyprinter transformers ];
        testHaskellDepends = [
          base directory filepath parsec process QuickCheck tasty
@@ -151439,7 +150917,7 @@ self: {
        libraryPkgconfigDepends = [ liblapack ];
        description = "Auto-generated interface to Fortran LAPACK";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) liblapack;};
+     }) {liblapack = null;};
 
   "lapack-ffi-tools" = callPackage
     ({ mkDerivation, base, bytestring, cassava, containers
@@ -151759,8 +151237,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "1.0.4";
-       sha256 = "1g2qq1ncix5n4w8bshmmwi8km3ph1ys1s31l0fa3imjmz9fsi1l1";
+       version = "2.0.0";
+       sha256 = "0dfs9nq3vcf8w2k1x51pixb4wb47rg9nzyjgfpzx6vip296ivyf7";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          bytestring-conversion clock containers cryptohash exceptions extra
@@ -152564,6 +152042,41 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "leb128" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, ghc-prim
+     , QuickCheck, test-framework, test-framework-quickcheck2
+     , transformers
+     }:
+     mkDerivation {
+       pname = "leb128";
+       version = "0.1.0.0";
+       sha256 = "097xzdj1q17whnzwlpwnfapppgc4lqwmmfcv2694gzlil84rqwk7";
+       libraryHaskellDepends = [ base bytestring ghc-prim transformers ];
+       testHaskellDepends = [
+         base bytestring QuickCheck test-framework
+         test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
+       description = "LEB128 encoding logic for and in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "leb128-cereal" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "leb128-cereal";
+       version = "1.0";
+       sha256 = "1qjxcvcgdf4l1wzps7410yv3i5mi3ax17mq2f9wgbfbnm33329i7";
+       libraryHaskellDepends = [ base bytestring cereal ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "LEB128 and SLEB128 encoding";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "leetify" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -161649,12 +161162,12 @@ self: {
      }) {};
 
   "maquinitas-tidal" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, tidal }:
      mkDerivation {
        pname = "maquinitas-tidal";
-       version = "0.2.1";
-       sha256 = "14j4469yl1ypw97m33r2v37mlqxa689ish84k7ggwjdqxj9f64n2";
-       libraryHaskellDepends = [ base ];
+       version = "0.2.4";
+       sha256 = "0apr5qkir3b6mnczi50lf3p349p1q3bl1sn4yg9dls2n3m147mf7";
+       libraryHaskellDepends = [ base tidal ];
        description = "library for MIDI control of hardware";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -165023,23 +164536,6 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-th";
-       version = "0.4.3.4";
-       sha256 = "08cixz1840ycc1y2b8anf1pqzlhnh89i6wskixd5s5brf8jl0l79";
-       libraryHaskellDepends = [
-         base containers microlens template-haskell th-abstraction
-         transformers
-       ];
-       testHaskellDepends = [ base microlens ];
-       description = "Automatic generation of record lenses for microlens";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "microlens-th_0_4_3_5" = callPackage
-    ({ mkDerivation, base, containers, microlens, template-haskell
-     , th-abstraction, transformers
-     }:
-     mkDerivation {
-       pname = "microlens-th";
        version = "0.4.3.5";
        sha256 = "0zk5wi8wrhhs7chdsxc9sm57w3zrjr7c9v80qh53ac4p3varjgfh";
        libraryHaskellDepends = [
@@ -165049,7 +164545,6 @@ self: {
        testHaskellDepends = [ base microlens ];
        description = "Automatic generation of record lenses for microlens";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "micrologger" = callPackage
@@ -166018,6 +165513,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "minizinc-process" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , hashable, process-extras, stringsearch, text
+     }:
+     mkDerivation {
+       pname = "minizinc-process";
+       version = "0.1.0.0";
+       sha256 = "0p2jb69k2n3dy47vx56pwh6pafccsm9r0nzqd60zss5fdrnxddf8";
+       libraryHaskellDepends = [
+         aeson base bytestring containers directory hashable process-extras
+         stringsearch text
+       ];
+       description = "A set of helpers to call minizinc models";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "minlen" = callPackage
     ({ mkDerivation, base, mono-traversable, semigroups, transformers
      }:
@@ -170049,8 +169560,8 @@ self: {
     ({ mkDerivation, base, bytestring, c2hs, monad-loops, mpich }:
      mkDerivation {
        pname = "mpi-hs";
-       version = "0.7.1.0";
-       sha256 = "1xja12laj9pznwkgllgn2126g0izgv7mp267jv0ihlzy4yv2ps8m";
+       version = "0.7.1.2";
+       sha256 = "0dhhvvncmsg6rnb16pi1da4zb82hlwyia0l5xxqz6s7518q0amkh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring monad-loops ];
@@ -170066,6 +169577,63 @@ self: {
        broken = true;
      }) {inherit (pkgs) mpich;};
 
+  "mpi-hs-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, monad-loops, mpi-hs }:
+     mkDerivation {
+       pname = "mpi-hs-binary";
+       version = "0.1.1.0";
+       sha256 = "10wlrm31drjgdviqzsvxlnj1mn1lli3n41z1xbfp0i80vmh29av3";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary bytestring monad-loops mpi-hs
+       ];
+       executableHaskellDepends = [ base mpi-hs ];
+       testHaskellDepends = [ base ];
+       description = "MPI bindings for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mpi-hs-cereal" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, monad-loops, mpi-hs }:
+     mkDerivation {
+       pname = "mpi-hs-cereal";
+       version = "0.1.0.0";
+       sha256 = "1sdizjk4xpc2hdh71s9ckjhq22appqj1c9s10mwxjgb9vd7bz07b";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring cereal monad-loops mpi-hs
+       ];
+       executableHaskellDepends = [ base mpi-hs ];
+       testHaskellDepends = [ base ];
+       description = "MPI bindings for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "mpi-hs-store" = callPackage
+    ({ mkDerivation, base, bytestring, monad-loops, mpi-hs, store }:
+     mkDerivation {
+       pname = "mpi-hs-store";
+       version = "0.1.0.0";
+       sha256 = "1afgamdbv7dq9r8jd7hn5y09rly75rhjk48da0d8hk0spcfdmnvq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring monad-loops mpi-hs store
+       ];
+       executableHaskellDepends = [ base mpi-hs ];
+       testHaskellDepends = [ base ];
+       description = "MPI bindings for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "mplayer-spot" = callPackage
     ({ mkDerivation, async, attoparsec, base, bytestring, conduit
      , conduit-extra, directory, filepath, process, semigroupoids
@@ -174544,8 +174112,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider";
-       version = "0.4.2.0";
-       sha256 = "1jpqkwgi13a0hw99andw6f8jsq8isqsqlqjc42bapy97wxba2bii";
+       version = "0.4.3.0";
+       sha256 = "19cvghyj6val79bsq3sh9gpr1f94dmmikmgsdasf6a26vcxr1q4y";
        libraryHaskellDepends = [
          aeson base containers data-interval extended-reals greskell
          greskell-websocket hashable monad-logger regex-applicative
@@ -174627,24 +174195,26 @@ self: {
      }) {};
 
   "net-spider-rpl-cli" = callPackage
-    ({ mkDerivation, base, greskell, hspec, ip, monad-logger
-     , net-spider, net-spider-cli, net-spider-rpl, optparse-applicative
-     , text, time, unordered-containers
+    ({ mkDerivation, base, bytestring, fast-logger, fgl, greskell
+     , hashable, hspec, ip, monad-logger, net-spider, net-spider-cli
+     , net-spider-rpl, optparse-applicative, text, time, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "net-spider-rpl-cli";
-       version = "0.1.2.2";
-       sha256 = "1l8h3d3m7h48n6vn7lhzlisf6hqr311q1yjxxp2ywkyx1fn3s9pp";
+       version = "0.1.3.0";
+       sha256 = "1hgzrl3fq1vp4dh4c0jf9kndclcrzapd124b4c9xd20xgidy01fd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base greskell monad-logger net-spider net-spider-cli net-spider-rpl
-         optparse-applicative text time unordered-containers
+         base fgl greskell monad-logger net-spider net-spider-cli
+         net-spider-rpl optparse-applicative text time transformers
+         unordered-containers
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base hspec ip net-spider net-spider-cli net-spider-rpl
-         optparse-applicative
+         base bytestring fast-logger hashable hspec ip monad-logger
+         net-spider net-spider-cli net-spider-rpl optparse-applicative text
        ];
        description = "CLI executable of NetSpider.RPL.";
        license = stdenv.lib.licenses.bsd3;
@@ -176748,8 +176318,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.4.1.0";
-       sha256 = "1jf49drs7jl5c5swy7pf2b00nawp3m2nf95941sr74c6y6g4y87d";
+       version = "0.4.1.1";
+       sha256 = "15d5dj8mdihj8m559lrfwwpb55nkkkapwd9x84jxsv6pmnh5m0qh";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client http-types
@@ -179039,10 +178609,8 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "2.1.0.2";
-       sha256 = "0amlvrh213n9cfqax5gcy7zq3fd8q9hcskhjkbayvzsyf5hhr1rn";
-       revision = "1";
-       editedCabalFile = "1v52rmk7hbdn40964r50jjz3lanfc5q8xrdqpv1wmwviw3j4rip8";
+       version = "2.1.0.3";
+       sha256 = "19834hldpywsg52144i9b372msmw5pcj7v0fwiii14pns4sf6v7v";
        libraryHaskellDepends = [
          base bytestring cereal cereal-conduit conduit containers
          data-default deepseq foreign-store hslogger megaparsec messagepack
@@ -180686,6 +180254,25 @@ self: {
        broken = true;
      }) {};
 
+  "openapi-typed" = callPackage
+    ({ mkDerivation, aeson, base, hspec, optics-core, optics-extra
+     , text, unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "openapi-typed";
+       version = "0.0.0.1";
+       sha256 = "06wbcd5cr2dfdj1hbzi01byfr2lvvv0sncjsbx9n6vq2anh54wkm";
+       libraryHaskellDepends = [
+         aeson base text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base hspec optics-core optics-extra text unordered-containers
+         yaml
+       ];
+       description = "Types for OpenAPI";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "opench-meteo" = callPackage
     ({ mkDerivation, aeson, base, data-default, text, time }:
      mkDerivation {
@@ -181168,26 +180755,46 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
-  "opentelemetry_0_2_0" = callPackage
-    ({ mkDerivation, async, base, bytestring, clock, directory
-     , exceptions, hashable, random, stm, tasty, tasty-discover
-     , tasty-hunit, tasty-quickcheck, text, unordered-containers
-     }:
+  "opentelemetry_0_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions }:
      mkDerivation {
        pname = "opentelemetry";
-       version = "0.2.0";
-       sha256 = "1nxkghxwjkgvdk6xhpssa7aifryn6rr0agbhyc0ybf2c76r1pr8b";
+       version = "0.3.0";
+       sha256 = "1mgq84ixi8hxhgim5d5mx6v1zc1sqrp8cffzw14rly3sfhdi1k0m";
+       libraryHaskellDepends = [ base bytestring exceptions ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "opentelemetry-extra" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
+     , directory, exceptions, filepath, ghc-events, hashable
+     , http-client, http-client-tls, http-types, opentelemetry, random
+     , scientific, splitmix, stm, tasty, tasty-discover, tasty-hunit
+     , tasty-quickcheck, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-extra";
+       version = "0.3.0";
+       sha256 = "00998jr520qmr9ii96r04bspfh8cdxwk951y02ic01higqjkx6xp";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring clock directory exceptions hashable random stm text
+         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
          unordered-containers
        ];
+       executableHaskellDepends = [
+         async base clock exceptions filepath http-client http-client-tls
+         opentelemetry text
+       ];
        testHaskellDepends = [
-         async base bytestring tasty tasty-discover tasty-hunit
+         base bytestring opentelemetry tasty tasty-discover tasty-hunit
          tasty-quickcheck
        ];
        testToolDepends = [ tasty-discover ];
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "opentelemetry-http-client" = callPackage
@@ -181206,32 +180813,43 @@ self: {
      }) {};
 
   "opentelemetry-lightstep" = callPackage
-    ({ mkDerivation, aeson, async, base, bytestring, exceptions
-     , http-client, http-client-tls, http-types, network, opentelemetry
-     , scientific, stm, text, unordered-containers
+    ({ 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
      }:
      mkDerivation {
        pname = "opentelemetry-lightstep";
-       version = "0.2.0";
-       sha256 = "03fv2lgwkqngp26rdrk2fzvnccdgjc7xsv3sl3adb3xwzppkn0xh";
+       version = "0.3.0";
+       sha256 = "0kfvls8alc8wq0habl4snvhvd3a808z07san1sbvwp215frxycy9";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson async base bytestring exceptions http-client http-client-tls
-         http-types network opentelemetry scientific stm text
-         unordered-containers
+         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 unordered-containers
        ];
-       testHaskellDepends = [ async base opentelemetry ];
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "opentelemetry-wai" = callPackage
-    ({ mkDerivation, base, http-types, opentelemetry, text, wai }:
+    ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
+     , wai
+     }:
      mkDerivation {
        pname = "opentelemetry-wai";
-       version = "0.2.0";
-       sha256 = "1n27g8xjij05g7xxx8z50k39nmclhm707xs2pfqy830zdq1ldfl4";
-       libraryHaskellDepends = [ base http-types opentelemetry text wai ];
+       version = "0.3.0";
+       sha256 = "0x2a3s1xdc66ww8p8nkpwblvhv9hng64baij3wvbcbn2n1lls531";
+       libraryHaskellDepends = [
+         base bytestring http-types opentelemetry text wai
+       ];
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -182591,15 +182209,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ormolu_0_0_4_0" = 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.4.0";
-       sha256 = "1x3fdhnpbf7xd0h85909smr5nv2qz4fbljvvzmsk8ph653j5js1k";
+       version = "0.0.5.0";
+       sha256 = "1sf22silpj89sldd7wanlr34nsv77bq0cf4i0q1x2r20pz7s4w4m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -182902,23 +182520,25 @@ self: {
      }) {};
 
   "overloaded" = callPackage
-    ({ mkDerivation, base, bin, bytestring, containers, fin
-     , generic-lens, ghc, HUnit, lens, optics-core, ral, record-hasfield
-     , singleton-bool, sop-core, split, syb, symbols, tasty, tasty-hunit
-     , text, time, vec
+    ({ mkDerivation, assoc, base, bin, boring, bytestring, constraints
+     , containers, fin, generic-lens-lite, ghc, hmatrix, HUnit, lens
+     , optics-core, QuickCheck, ral, record-hasfield, singleton-bool
+     , sop-core, split, syb, symbols, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, vec
      }:
      mkDerivation {
        pname = "overloaded";
-       version = "0.2";
-       sha256 = "1kp3vbdfwp9caicmj2k1qznbsn844pm75sy8ywwm86334f08vshk";
+       version = "0.2.1";
+       sha256 = "1qa2xq2hf792ivi92mimznwj86x9y1dpwz7rwcz99zvfk7a3hsis";
        libraryHaskellDepends = [
-         base bin bytestring containers fin ghc optics-core ral
+         assoc base bin bytestring containers fin ghc optics-core ral
          record-hasfield sop-core split syb symbols text time vec
        ];
        testHaskellDepends = [
-         base bin bytestring containers fin generic-lens HUnit lens
-         optics-core ral record-hasfield singleton-bool sop-core symbols
-         tasty tasty-hunit text time vec
+         assoc base bin boring bytestring constraints containers fin
+         generic-lens-lite hmatrix HUnit lens optics-core QuickCheck ral
+         record-hasfield singleton-bool sop-core symbols tasty tasty-hunit
+         tasty-quickcheck text time vec
        ];
        doHaddock = false;
        description = "Overloaded pragmas as a plugin";
@@ -184940,8 +184560,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, parallel-io }:
      mkDerivation {
        pname = "par-traverse";
-       version = "0.2.0.0";
-       sha256 = "1cbanrhaad3fq2kkpdkb3rh7c8qrc1v7by8v6mg4lrgghdx3msk8";
+       version = "0.2.1.0";
+       sha256 = "0rmv6wyisdg4srzjykikqqigfji6x5zn1cz2v3cyl0dms4yr4lig";
        libraryHaskellDepends = [ base directory filepath parallel-io ];
        description = "Traverse a directory in parallel";
        license = stdenv.lib.licenses.bsd3;
@@ -187414,6 +187034,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "penntreebank-megaparsec" = callPackage
+    ({ mkDerivation, base, containers, hspec, hspec-discover
+     , megaparsec, mtl, text, transformers
+     }:
+     mkDerivation {
+       pname = "penntreebank-megaparsec";
+       version = "0.1.0";
+       sha256 = "1wjwwpb1i10kasqxn9gkn34cpyjs83znmr6ps5sjr0zhqyg3dk3j";
+       libraryHaskellDepends = [
+         base containers megaparsec mtl transformers
+       ];
+       testHaskellDepends = [
+         base containers hspec megaparsec mtl text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Parser combinators for trees in the Penn Treebank format";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "penny" = callPackage
     ({ mkDerivation, action-permutations, anonymous-sums, base
      , bytestring, cereal, containers, contravariant, either, matchers
@@ -187569,8 +187208,8 @@ self: {
      }:
      mkDerivation {
        pname = "perceptual-hash";
-       version = "0.1.3.3";
-       sha256 = "15f36b1xv5lq7gw7nd10mmhfyi935v07rdq04vzl2msdd6cn0j3d";
+       version = "0.1.3.5";
+       sha256 = "0f36sy9ixwbx55m3634lr0hrhllj68wv5jilzq0xik2171g3rx2p";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -193320,6 +192959,25 @@ self: {
        broken = true;
      }) {};
 
+  "popkey" = callPackage
+    ({ mkDerivation, base, bitvec, bytestring, containers, hspec
+     , hspec-discover, hw-bits, hw-prim, hw-rankselect
+     , hw-rankselect-base, profunctors, QuickCheck, store, text, vector
+     }:
+     mkDerivation {
+       pname = "popkey";
+       version = "0.0.0.1";
+       sha256 = "1gplzbbj6whmxchxr78zv32ixlf79sjgdz950jixl7z9p5pdrki7";
+       libraryHaskellDepends = [
+         base bitvec bytestring containers hw-bits hw-prim hw-rankselect
+         hw-rankselect-base profunctors store text vector
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       description = "Static key-value storage backed by poppy";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "poppler" = callPackage
     ({ mkDerivation, array, base, bytestring, Cabal, cairo, containers
      , gdk-pixbuf, glib, gtk, gtk2, gtk2hs-buildtools, mtl, pango
@@ -196202,8 +195860,8 @@ self: {
     ({ mkDerivation, ghc-prim }:
      mkDerivation {
        pname = "prim";
-       version = "0.1.0.2";
-       sha256 = "0pq9mjvifbj3h6pi024kjias3vlzn6nw7g684bf5z58cg51cmckg";
+       version = "0.1.0.6";
+       sha256 = "187pzlgkyg64azwrr2q896wy4i5zrryjbp9ldg9hm5lgyv782vr2";
        libraryHaskellDepends = [ ghc-prim ];
        description = "An ergonomic but conservative interface to ghc-prim";
        license = stdenv.lib.licenses.mit;
@@ -198705,6 +198363,26 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "protolude_0_3_0" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, containers
+     , deepseq, ghc-prim, hashable, mtl, mtl-compat, stm, text
+     , transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "protolude";
+       version = "0.3.0";
+       sha256 = "1b6wprbwfdjyvds2bm6na0fbqgzdkj5ikkk33whbkyh3krd3i0s0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array async base bytestring containers deepseq ghc-prim hashable
+         mtl mtl-compat stm text transformers transformers-compat
+       ];
+       description = "A small prelude";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protolude-lifted" = callPackage
     ({ mkDerivation, async, base, lifted-async, lifted-base, protolude
      }:
@@ -199826,20 +199504,20 @@ self: {
 
   "push-notify-apn" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, binary, bytestring
-     , containers, data-default, hspec, http2, http2-client
-     , optparse-applicative, random, semigroups, text, time, tls, x509
-     , x509-store
+     , containers, data-default, hspec, http2, http2-client, lifted-base
+     , mtl, optparse-applicative, random, resource-pool, semigroups
+     , text, time, tls, x509, x509-store
      }:
      mkDerivation {
        pname = "push-notify-apn";
-       version = "0.2.0.0";
-       sha256 = "0lkdjpgd04b7jxcrqvn395bhdac0ms0jbxdigd1xpvj6d9w7f9x3";
+       version = "0.2.0.1";
+       sha256 = "1p33nwazxk4kk52vw6i8rrsgy8i3bzn0klp56bv6nj1751z3mzbj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base16-bytestring binary bytestring containers
-         data-default http2 http2-client random semigroups text time tls
-         x509 x509-store
+         data-default http2 http2-client lifted-base mtl random
+         resource-pool semigroups text time tls x509 x509-store
        ];
        executableHaskellDepends = [
          base bytestring optparse-applicative semigroups text
@@ -200698,26 +200376,6 @@ self: {
 
   "quadratic-irrational" = callPackage
     ({ mkDerivation, arithmoi, base, containers, directory, doctest
-     , filepath, mtl, numbers, QuickCheck, tasty, tasty-quickcheck
-     , transformers
-     }:
-     mkDerivation {
-       pname = "quadratic-irrational";
-       version = "0.1.0";
-       sha256 = "0kfgvixvcawfhw4vv0zg2r0d6hrlak01q9isqc3n3lc63qaifxgy";
-       revision = "1";
-       editedCabalFile = "11snayb371lpsz7p74sbbl3kq0i3i2vnp852x8vw482v48kld5vl";
-       libraryHaskellDepends = [ arithmoi base containers transformers ];
-       testHaskellDepends = [
-         arithmoi base directory doctest filepath mtl numbers QuickCheck
-         tasty tasty-quickcheck
-       ];
-       description = "An implementation of quadratic irrationals";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "quadratic-irrational_0_1_1" = callPackage
-    ({ mkDerivation, arithmoi, base, containers, directory, doctest
      , filepath, integer-roots, mtl, numbers, QuickCheck, tasty
      , tasty-quickcheck, transformers
      }:
@@ -200734,7 +200392,6 @@ self: {
        ];
        description = "An implementation of quadratic irrationals";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "quandl-api" = callPackage
@@ -200856,8 +200513,8 @@ self: {
      }:
      mkDerivation {
        pname = "quarantimer";
-       version = "1.20200326";
-       sha256 = "1q0rraxq1gv86chi64ijxxkx4dm8w9v2610wj58315bap3d3m91c";
+       version = "1.20200422";
+       sha256 = "1wcf9rh6543pv1dpf55jk12x6zsak29izy94q1l4hc31w32gi8xz";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -203785,8 +203442,8 @@ self: {
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "9.0.10";
-       sha256 = "19xivp6hh6sz8wcn18y481pwxbggnw6dgbwdjiy42571q20gmzbw";
+       version = "9.1.1";
+       sha256 = "11q115yfjjafq2dyn88xc6xnynqw2i6yn7g9n8yy9qaa8jpgibzz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -205272,6 +204929,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "recursion-schemes-ix" = callPackage
+    ({ mkDerivation, base, containers, hspec, mtl, QuickCheck
+     , singlethongs
+     }:
+     mkDerivation {
+       pname = "recursion-schemes-ix";
+       version = "0.1.0.0";
+       sha256 = "1hg0ggba40n1455nd85wb6h2fr3hixf69a3d75a6g5dcahaqh39n";
+       libraryHaskellDepends = [ base singlethongs ];
+       testHaskellDepends = [
+         base containers hspec mtl QuickCheck singlethongs
+       ];
+       description = "Recursion schemes over indexed Functors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "recursive-line-count" = callPackage
     ({ mkDerivation, base, bytestring, containers, filepath, gtk, mtl
      , process
@@ -206135,8 +205808,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-fsnotify";
-       version = "0.2.0.0";
-       sha256 = "0nxi3zjwwq36212qncpxi7rn30lgh0zy4swz10wxm55zb480dm8m";
+       version = "0.2.1.0";
+       sha256 = "1ym220myy521j4lm0wrjydg18ya5fw71j0mv3md35vmn18n6r0d4";
        libraryHaskellDepends = [
          base containers directory filepath fsnotify reflex
        ];
@@ -206854,21 +206527,6 @@ self: {
      }:
      mkDerivation {
        pname = "regex-pcre-builtin";
-       version = "0.95.1.1.8.43";
-       sha256 = "1akis4b9jp4a0qbwnpwm0nzlg76kb54wn2vlicc6yb4qha210fsd";
-       libraryHaskellDepends = [
-         array base bytestring containers regex-base text
-       ];
-       description = "PCRE Backend for \"Text.Regex\" (regex-base)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "regex-pcre-builtin_0_95_1_2_8_43" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, regex-base
-     , text
-     }:
-     mkDerivation {
-       pname = "regex-pcre-builtin";
        version = "0.95.1.2.8.43";
        sha256 = "1bxn8d3g9w1a5q5vcz744yx019d2rd79i07qcjq4jqkjafni1bml";
        libraryHaskellDepends = [
@@ -206876,7 +206534,6 @@ self: {
        ];
        description = "PCRE Backend for \"Text.Regex\" (regex-base)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "regex-pcre-text" = callPackage
@@ -209293,6 +208950,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "resourcet_1_2_4" = callPackage
+    ({ mkDerivation, base, containers, exceptions, hspec, mtl
+     , primitive, transformers, unliftio-core
+     }:
+     mkDerivation {
+       pname = "resourcet";
+       version = "1.2.4";
+       sha256 = "017v0r9qk4d7dd04dc03ghghyk1d4qj82gligyzg5fdz2rkg8i8x";
+       libraryHaskellDepends = [
+         base containers exceptions mtl primitive transformers unliftio-core
+       ];
+       testHaskellDepends = [ base exceptions hspec transformers ];
+       description = "Deterministic allocation and freeing of scarce resources";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "respond" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
      , data-default-class, exceptions, fast-logger, formatting, HList
@@ -210217,8 +209891,8 @@ self: {
     ({ mkDerivation, base, dunai, gloss, rhine }:
      mkDerivation {
        pname = "rhine-gloss";
-       version = "0.6.0";
-       sha256 = "1kfy993872iq93fc5bn6bz0xx13afbb5piwxyw8jdjp146jp2380";
+       version = "0.6.0.1";
+       sha256 = "1j3sbdlfn6hkksfxa5nw874pm9yxmc8hy14msjfsl3g3y0d501bh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base dunai gloss rhine ];
@@ -210349,8 +210023,8 @@ self: {
     ({ mkDerivation, base, Only, postgresql-simple, text, time }:
      mkDerivation {
        pname = "ribbit";
-       version = "1.1.0.0";
-       sha256 = "1pmg7ii6mpl22hlgmripwp44cz4pwp2yqa4z32f21lfr0y9slz8j";
+       version = "1.1.0.1";
+       sha256 = "076m5w4w08z8migb0v8vb6lybs06x1bfvxqfi9g633lz464hyi9v";
        libraryHaskellDepends = [ base Only postgresql-simple text time ];
        description = "Type-level Relational DB combinators";
        license = stdenv.lib.licenses.mit;
@@ -210467,8 +210141,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley";
-       version = "0.3.1.3";
-       sha256 = "0j7wvzk2x3xpvwwfkz1bll9awfrlbn1lcl50hm582plnl2pgddq0";
+       version = "0.3.1.4";
+       sha256 = "120yqfrkp4ziz8yn6xgzzhdszrvq1dk1szzh3q2m8w36c0g2qdhy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          async base containers ekg-core ekg-prometheus-adapter inline-c
@@ -213169,29 +212843,6 @@ self: {
      }:
      mkDerivation {
        pname = "safecopy";
-       version = "0.10.2";
-       sha256 = "0x8j27qmvqk009q2jhs1a6rdi81xvgp76bwnbp0y8yvzynjcaagk";
-       libraryHaskellDepends = [
-         array base bytestring cereal containers generic-data old-time
-         template-haskell text time transformers vector
-       ];
-       testHaskellDepends = [
-         array base bytestring cereal containers HUnit lens lens-action
-         QuickCheck quickcheck-instances tasty tasty-quickcheck
-         template-haskell time vector
-       ];
-       description = "Binary serialization with version control";
-       license = stdenv.lib.licenses.publicDomain;
-     }) {};
-
-  "safecopy_0_10_3" = callPackage
-    ({ mkDerivation, array, base, bytestring, cereal, containers
-     , generic-data, HUnit, lens, lens-action, old-time, QuickCheck
-     , quickcheck-instances, tasty, tasty-quickcheck, template-haskell
-     , text, time, transformers, vector
-     }:
-     mkDerivation {
-       pname = "safecopy";
        version = "0.10.3";
        sha256 = "142ghv6pa3y0s7x141x9f9r5sn0315vvkfw6f7lgnndlncs5y354";
        libraryHaskellDepends = [
@@ -213205,7 +212856,6 @@ self: {
        ];
        description = "Binary serialization with version control";
        license = stdenv.lib.licenses.publicDomain;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "safecopy-migrate" = callPackage
@@ -213417,20 +213067,18 @@ self: {
   "sak" = callPackage
     ({ mkDerivation, base, brotli, bytestring, bz2, cpphs, directory
      , filepath, lz4-hs, lzlib, lzma, optparse-applicative, parallel-io
-     , zlib, zstd
+     , snappy-lazy, zlib, zstd
      }:
      mkDerivation {
        pname = "sak";
-       version = "0.1.2.3";
-       sha256 = "0ydc5ykkhxxvzcwncf0rvn3zk2gid7r0dwai63r3vsvp7mn2jg8g";
-       revision = "1";
-       editedCabalFile = "01xf0f5q458wgg8jndcimgpqmwvgvxlpf5cf7gb14v2y3vw2hzfj";
+       version = "0.1.2.4";
+       sha256 = "0gj0w8c4j43586k474ncjk4ldgjx5rbw36g5lacbn13lf3fid2ck";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
          base brotli bytestring bz2 directory filepath lz4-hs lzlib lzma
-         optparse-applicative parallel-io zlib zstd
+         optparse-applicative parallel-io snappy-lazy zlib zstd
        ];
        executableToolDepends = [ cpphs ];
        description = "Compression command-line tool";
@@ -214430,6 +214078,23 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "scalpel_0_6_2" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, data-default
+     , http-client, http-client-tls, scalpel-core, tagsoup, text
+     }:
+     mkDerivation {
+       pname = "scalpel";
+       version = "0.6.2";
+       sha256 = "04hhvk0yjxha3yg6n9fxivrz97hpjjiiblnj0bvs5myax1ggkjch";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive data-default http-client
+         http-client-tls scalpel-core tagsoup text
+       ];
+       description = "A high level web scraping library for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "scalpel-core" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion
      , data-default, fail, HUnit, pointedlist, regex-base, regex-tdfa
@@ -214449,6 +214114,26 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "scalpel-core_0_6_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , data-default, fail, HUnit, mtl, pointedlist, regex-base
+     , regex-tdfa, tagsoup, text, transformers, vector
+     }:
+     mkDerivation {
+       pname = "scalpel-core";
+       version = "0.6.2";
+       sha256 = "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf";
+       libraryHaskellDepends = [
+         base bytestring containers data-default fail mtl pointedlist
+         regex-base regex-tdfa tagsoup text transformers vector
+       ];
+       testHaskellDepends = [ base HUnit regex-base regex-tdfa tagsoup ];
+       benchmarkHaskellDepends = [ base criterion tagsoup text ];
+       description = "A high level web scraping library for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "scan" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -215797,27 +215482,6 @@ self: {
      }:
      mkDerivation {
        pname = "sdl2";
-       version = "2.5.1.0";
-       sha256 = "087df61fsmfsdc7pdn6sgsp5lf20nampa41illszii5jfr13s7gw";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring exceptions linear StateVar text transformers vector
-       ];
-       librarySystemDepends = [ SDL2 ];
-       libraryPkgconfigDepends = [ SDL2 ];
-       testHaskellDepends = [ base deepseq linear vector weigh ];
-       description = "Both high- and low-level bindings to the SDL library (version 2.0.6+).";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) SDL2;};
-
-  "sdl2_2_5_2_0" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, exceptions, linear
-     , SDL2, StateVar, text, transformers, vector, weigh
-     }:
-     mkDerivation {
-       pname = "sdl2";
        version = "2.5.2.0";
        sha256 = "18cgckkq4yj0xwj3pmsfsqxazl7rcmb3f7b45kv9nwvjwyqi0hcw";
        isLibrary = true;
@@ -215831,7 +215495,6 @@ self: {
        testHaskellDepends = [ base deepseq linear vector weigh ];
        description = "Both high- and low-level bindings to the SDL library (version 2.0.6+).";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) SDL2;};
 
   "sdl2-cairo" = callPackage
@@ -217625,6 +217288,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "serialise-uuid" = callPackage
+    ({ mkDerivation, base, bytestring, cborg, serialise, tasty
+     , tasty-hunit, tasty-quickcheck, uuid-types
+     }:
+     mkDerivation {
+       pname = "serialise-uuid";
+       version = "0.1";
+       sha256 = "0sw1vim04yflkznxkcdcljrns1nb6v0zjvwkx5spbb5dc0gk12v5";
+       libraryHaskellDepends = [
+         base bytestring cborg serialise uuid-types
+       ];
+       testHaskellDepends = [
+         base bytestring serialise tasty tasty-hunit tasty-quickcheck
+         uuid-types
+       ];
+       description = "Encode and decode UUID values in CBOR using uuid-types, cborg and serialise";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "serialize-instances" = callPackage
     ({ mkDerivation, base, cereal, hashable, semigroups
      , unordered-containers
@@ -218599,6 +218281,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "servant-docs-simple" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, hspec
+     , hspec-core, prettyprinter, raw-strings-qq, servant, text
+     }:
+     mkDerivation {
+       pname = "servant-docs-simple";
+       version = "0.1.0.0";
+       sha256 = "11591njaavchmlmdzwql7n3klfs6il1c1q4rd5h8n84krsah3y4r";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring prettyprinter servant text
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base bytestring hspec hspec-core prettyprinter
+         raw-strings-qq servant text
+       ];
+       description = "Generate documentation via TypeRep for Servant API";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "servant-ede" = callPackage
     ({ mkDerivation, aeson, base, bytestring, ede, either, filepath
      , http-media, http-types, semigroups, servant, servant-server, text
@@ -218657,28 +218358,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-elm";
-       version = "0.7.1";
-       sha256 = "1r24hqv4xs1k280a0c3lcmfjrywh0663hh8xi8fpzlmsgmn2s464";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base directory elm-bridge lens servant servant-foreign text
-         wl-pprint-text
-       ];
-       testHaskellDepends = [
-         aeson base Diff elm-bridge hspec HUnit servant servant-client text
-       ];
-       description = "Automatically derive Elm functions to query servant webservices";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "servant-elm_0_7_2" = callPackage
-    ({ mkDerivation, aeson, base, Diff, directory, elm-bridge, hspec
-     , HUnit, lens, servant, servant-client, servant-foreign, text
-     , wl-pprint-text
-     }:
-     mkDerivation {
-       pname = "servant-elm";
        version = "0.7.2";
        sha256 = "1hn7qkz4aw5snc4lbprbshzr3dagfry1bms0fx9bfif61312swqy";
        isLibrary = true;
@@ -218692,7 +218371,6 @@ self: {
        ];
        description = "Automatically derive Elm functions to query servant webservices";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-errors" = callPackage
@@ -220545,6 +220223,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "serverless-haskell_0_10_5" = 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
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "serverless-haskell";
+       version = "0.10.5";
+       sha256 = "187pah3k88vp27k1imwj1mqxavd9zykms3is517xrp209ldx5kw1";
+       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
+       ];
+       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
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Deploying Haskell code onto AWS Lambda using Serverless";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "serversession" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , containers, data-default, hashable, hspec, nonce, path-pieces
@@ -224418,6 +224124,18 @@ self: {
        broken = true;
      }) {};
 
+  "singlethongs" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "singlethongs";
+       version = "0.1";
+       sha256 = "14f7nnlw4hwvv767qgm6cb3ywijm9gyzjprr0i4ffa04r283mm3q";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base ];
+       description = "Like singletons, but much smaller";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "singleton-bool" = callPackage
     ({ mkDerivation, base, dec }:
      mkDerivation {
@@ -225494,6 +225212,19 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "slist_0_1_1_0" = callPackage
+    ({ mkDerivation, base, doctest, Glob }:
+     mkDerivation {
+       pname = "slist";
+       version = "0.1.1.0";
+       sha256 = "046v580i8kxx9fpsvavwpydyfsffky3m735c45dafixrkbhjz55d";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest Glob ];
+       description = "Sized list";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sloane" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
      , bloomfilter, bytestring, conduit, conduit-extra, containers
@@ -227761,6 +227492,20 @@ self: {
        broken = true;
      }) {};
 
+  "snappy-lazy" = callPackage
+    ({ mkDerivation, base, binary, bytestring, snappy, snappy-framing
+     }:
+     mkDerivation {
+       pname = "snappy-lazy";
+       version = "0.1.0.0";
+       sha256 = "02c2zxlzs5p29rsjj3vsnc2hdamr40is7fzybq6mf5rl9nkicggh";
+       libraryHaskellDepends = [
+         base binary bytestring snappy snappy-framing
+       ];
+       description = "Lazy bytestring compression and decompression";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "sndfile-enumerators" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, filepath
      , iteratee, listlike-instances, MonadCatchIO-transformers
@@ -228630,19 +228375,22 @@ self: {
      }) {};
 
   "souffle-haskell" = callPackage
-    ({ mkDerivation, base, hspec, mtl, souffle, template-haskell, text
+    ({ mkDerivation, base, deepseq, directory, filepath, free, hspec
+     , mtl, process, souffle, template-haskell, temporary, text
      , type-errors-pretty, vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "0.1.0";
-       sha256 = "0m8p9fx4avv4kf4hbr248rk9k3vixzkx4gqmcslfra3d79akjyad";
+       version = "0.2.0";
+       sha256 = "0c67z5wrfi3pp5fyvl8k4j1r8h7ziy6hj5zrwrpf550p3a04chrm";
        libraryHaskellDepends = [
-         base mtl template-haskell text type-errors-pretty vector
+         base deepseq directory filepath free mtl process template-haskell
+         temporary text type-errors-pretty vector
        ];
        libraryToolDepends = [ souffle ];
        testHaskellDepends = [
-         base hspec mtl template-haskell text type-errors-pretty vector
+         base deepseq directory filepath free hspec mtl process
+         template-haskell temporary text type-errors-pretty vector
        ];
        testToolDepends = [ souffle ];
        description = "Souffle Datalog bindings for Haskell";
@@ -230414,8 +230162,8 @@ self: {
      }:
      mkDerivation {
        pname = "squeal-postgresql";
-       version = "0.6.0.1";
-       sha256 = "1c8lsi3qjl1zp0hfhmrv5r6pqsvcilx3g1aw49rrvjrj9xlbbvws";
+       version = "0.6.0.2";
+       sha256 = "0798aw0ahjdjczz5i8n1dwix8vzd0ccl7cbf473x5mxn549nh0qm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233498,15 +233246,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_51_0" = callPackage
+  "stratosphere_0_52_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.51.0";
-       sha256 = "053q621zw2c0nf08qc232mnh1cn4qxyzshayis6siqabdnjlqnk2";
+       version = "0.52.0";
+       sha256 = "1js5rb5f0p7ryja5slpxjpvqfq4f72bw9f66ysd70cjvw3zf3hbh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -234266,6 +234014,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streamly_0_7_2" = callPackage
+    ({ mkDerivation, atomic-primops, base, containers, deepseq
+     , directory, exceptions, fusion-plugin-types, ghc, ghc-prim, heaps
+     , hspec, lockfree-queue, monad-control, mtl, network, primitive
+     , QuickCheck, random, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "streamly";
+       version = "0.7.2";
+       sha256 = "007i3rfza0v8zy34lq9ipq2biarg82prmd1vxr5f2zz5xln37wrm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         atomic-primops base containers deepseq directory exceptions
+         fusion-plugin-types ghc-prim heaps lockfree-queue monad-control mtl
+         network primitive transformers transformers-base
+       ];
+       testHaskellDepends = [
+         base containers exceptions ghc hspec mtl QuickCheck random
+         transformers
+       ];
+       description = "Beautiful Streaming, Concurrent and Reactive Composition";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "streamly-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , gauge, hspec, hspec-discover, quickcheck-instances, random
@@ -235028,6 +234802,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "stripe-concepts_1_0_2_2" = callPackage
+    ({ mkDerivation, base, bytestring, text }:
+     mkDerivation {
+       pname = "stripe-concepts";
+       version = "1.0.2.2";
+       sha256 = "18dqw3fkviysazx1iy2ljnk6ngpck83ld0msnn8pn68l4qvvhl4r";
+       libraryHaskellDepends = [ base bytestring text ];
+       description = "Types for the Stripe API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stripe-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, mtl, text, time
      , transformers, unordered-containers
@@ -235108,10 +234894,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-scotty";
-       version = "1.0.0.0";
-       sha256 = "195v1a3sl5skz2jr71r1b4za033s6hib7ld59f4fdrfdr5658sbs";
-       revision = "1";
-       editedCabalFile = "0c3r39217650yjxxs1523ywvyiirrh2f209gl4hfznyigkx2kg41";
+       version = "1.0.0.2";
+       sha256 = "1dvmagbxgmlf7970rwf0cjdk8fcpxkl1isiki1bpq4zd07cjnsfv";
        libraryHaskellDepends = [
          aeson base bytestring http-types scotty stripe-concepts
          stripe-signature text unordered-containers
@@ -235137,6 +234921,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "stripe-signature_1_0_0_2" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, cryptonite
+     , memory, stripe-concepts, text
+     }:
+     mkDerivation {
+       pname = "stripe-signature";
+       version = "1.0.0.2";
+       sha256 = "1jjn4znk22993dpzwdqndnsyn4k76v7zqgm7j7dhvlgiwak6yxh6";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring cryptonite memory stripe-concepts
+         text
+       ];
+       testHaskellDepends = [ base bytestring text ];
+       description = "Verification of Stripe webhook signatures";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stripe-tests" = callPackage
     ({ mkDerivation, aeson, base, bytestring, free, hspec, hspec-core
      , mtl, random, stripe-core, text, time, transformers
@@ -235162,8 +234964,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-wreq";
-       version = "1.0.1.0";
-       sha256 = "0i5d0c9zha4v9361p92kq5bpma5dq5aqdkqdrghwpzx0pppfpx3y";
+       version = "1.0.1.2";
+       sha256 = "0hjk9d0xlg2a6nc2rmc19fmifcyrdj5m69100fy5xkq6brcqxjz1";
        libraryHaskellDepends = [
          aeson base bytestring lens stripe-concepts text
          unordered-containers wreq
@@ -235613,8 +235415,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylist";
-       version = "1.2.0.0";
-       sha256 = "1b3kz8kp2dda4f0vghbaxc6y29r39k197fzphy4av8p6vxgp2ka0";
+       version = "2.0.0.0";
+       sha256 = "1xb2vl4xjbgd52nqm378r43z4xlgzscfy9a7mqp522av3b4v61x7";
        libraryHaskellDepends = [
          async base css-syntax hashable network-uri text
          unordered-containers
@@ -236861,6 +236663,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "swagger2_2_6" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries
+     , bytestring, Cabal, cabal-doctest, containers, cookie, doctest
+     , generics-sop, Glob, hashable, hspec, hspec-discover, http-media
+     , HUnit, insert-ordered-containers, lens, mtl, network, optics-core
+     , optics-th, QuickCheck, quickcheck-instances, scientific
+     , template-haskell, text, time, transformers, transformers-compat
+     , unordered-containers, utf8-string, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "swagger2";
+       version = "2.6";
+       sha256 = "0vkhikxf1gpspc9qjgnvz3glb01bd54bnc5kraac7dyn8cxzwak8";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base-compat-batteries bytestring containers
+         cookie generics-sop hashable http-media insert-ordered-containers
+         lens mtl network optics-core optics-th QuickCheck scientific
+         template-haskell text time transformers transformers-compat
+         unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         aeson base base-compat-batteries bytestring containers doctest Glob
+         hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
+         quickcheck-instances template-haskell text time
+         unordered-containers utf8-string vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Swagger 2.0 data model";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "swapper" = callPackage
     ({ mkDerivation, base, binary, bytestring, deepseq, happstack-data
      , happstack-state, parallel, tokyocabinet
@@ -238392,6 +238227,21 @@ self: {
        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 = [
+         base bytestring network transformers unix
+       ];
+       testHaskellDepends = [ base network unix ];
+       description = "Systemd facilities (Socket activation, Notify)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "systemstats" = callPackage
     ({ mkDerivation, base, micrologger, optparse-applicative, statgrab
      , text, text-format, transformers
@@ -239762,8 +239612,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.1.2.3";
-       sha256 = "02vavv0ddx82h7xa3nky3s54fz8pnar8kgzssz83f08brw35qdjb";
+       version = "0.2.0.0";
+       sha256 = "1sljpsafyh2kxga7p9dz0nsvqlsmbd399xlgmncnyfh0z9cii7pw";
        libraryHaskellDepends = [
          aeson base bytestring process random text time unordered-containers
          uuid
@@ -239904,28 +239754,6 @@ self: {
   "tasty-golden" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, deepseq
      , directory, filepath, mtl, optparse-applicative, process, tagged
-     , tasty, tasty-hunit, temporary
-     }:
-     mkDerivation {
-       pname = "tasty-golden";
-       version = "2.3.3";
-       sha256 = "07sk9hw41am2xcpfkzy1jv43wlyxkdd4ajwk8rw2jabva91kv68x";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         async base bytestring containers deepseq directory filepath mtl
-         optparse-applicative process tagged tasty temporary
-       ];
-       testHaskellDepends = [
-         base directory filepath process tasty tasty-hunit temporary
-       ];
-       description = "Golden tests support for tasty";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "tasty-golden_2_3_3_1" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, deepseq
-     , directory, filepath, mtl, optparse-applicative, process, tagged
      , tasty, tasty-hunit, temporary, text
      }:
      mkDerivation {
@@ -239943,7 +239771,6 @@ self: {
        ];
        description = "Golden tests support for tasty";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tasty-groundhog-converters" = callPackage
@@ -240872,10 +240699,8 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.2.0";
-       sha256 = "1aafj27zj69hvzxv58cz7h8pjbc9c74hmg92swg2sy8ai1rcb34a";
-       revision = "1";
-       editedCabalFile = "1li6b3m9glhfg8agr9h0mrbxpr8zr46l57mzjfdqndm248ddbklv";
+       version = "0.3.0";
+       sha256 = "196zb03nj37qfmxgn5lagjdl759bgmnr1vsh26dbbv1zsmlp0pva";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -240897,24 +240722,24 @@ self: {
      }) {};
 
   "telegram-raw-api" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, connection
-     , deriving-aeson, generic-lens, http-client, http-client-tls
-     , http-media, lens, servant, servant-client, servant-client-core
-     , servant-multipart, telegram-types, text
+    ({ mkDerivation, aeson, base, bytestring, deriving-aeson
+     , generic-lens, hashable, http-client, http-client-tls, http-media
+     , lens, servant, servant-client, servant-client-core
+     , servant-multipart, telegram-types, text, time
      }:
      mkDerivation {
        pname = "telegram-raw-api";
-       version = "0.1.0";
-       sha256 = "0afj22mwxsqdb95m1lb03h4fssyfwsrvi2qdm2bajkvlgaz3h8zh";
+       version = "0.3.0";
+       sha256 = "0dlazp70jpffpbpdlbyzv7s33jr1ff8z4xjhvkgqyhs23mzi46rc";
        libraryHaskellDepends = [
-         aeson base bytestring connection deriving-aeson generic-lens
+         aeson base bytestring deriving-aeson generic-lens hashable
          http-media lens servant servant-client servant-multipart
-         telegram-types text
+         telegram-types text time
        ];
        testHaskellDepends = [
-         aeson base bytestring connection deriving-aeson generic-lens
+         aeson base bytestring deriving-aeson generic-lens hashable
          http-client http-client-tls http-media lens servant servant-client
-         servant-client-core servant-multipart telegram-types text
+         servant-client-core servant-multipart telegram-types text time
        ];
        description = "Servant bindings to the Telegram bot API";
        license = stdenv.lib.licenses.bsd3;
@@ -240923,19 +240748,19 @@ self: {
   "telegram-types" = callPackage
     ({ mkDerivation, aeson, base, bytestring, deriving-aeson, filepath
      , generic-lens, lens, mime-types, open-union, servant
-     , servant-multipart, text
+     , servant-multipart, text, time
      }:
      mkDerivation {
        pname = "telegram-types";
-       version = "0.1.0";
-       sha256 = "19xrmqcgv5dih9vfxp5dvzzxsfs3x3rsz0ncw9x6xxzbmiirbc0k";
+       version = "0.4.0";
+       sha256 = "1giv1d713rfdc8svcba2ws8mv6g957f7v1dm3qr9p8082nry2llm";
        libraryHaskellDepends = [
          aeson base bytestring deriving-aeson filepath generic-lens lens
-         mime-types open-union servant servant-multipart text
+         mime-types open-union servant servant-multipart text time
        ];
        testHaskellDepends = [
          aeson base bytestring deriving-aeson filepath generic-lens lens
-         mime-types open-union servant servant-multipart text
+         mime-types open-union servant servant-multipart text time
        ];
        description = "Types used in Telegram bot API";
        license = stdenv.lib.licenses.bsd3;
@@ -241033,8 +240858,8 @@ self: {
     ({ mkDerivation, base, time }:
      mkDerivation {
        pname = "tempi";
-       version = "1.0.0.0";
-       sha256 = "14sap7m01f0l8hkh63qidkivji3y3ivhfkvyq881dn5zs9iajq2l";
+       version = "1.0.1.1";
+       sha256 = "126j3bph2b7wsn7gvckx7b6sj69djcr57m4yzbdc895mq5zga88j";
        libraryHaskellDepends = [ base time ];
        description = "For representing musical tempi";
        license = stdenv.lib.licenses.bsd3;
@@ -241468,8 +241293,6 @@ self: {
        ];
        description = "TensorFlow bindings";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {libtensorflow = null;};
 
   "tensorflow-core-ops" = callPackage
@@ -241490,8 +241313,6 @@ self: {
        ];
        description = "Haskell wrappers for Core Tensorflow Ops";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-logging" = callPackage
@@ -241520,8 +241341,6 @@ self: {
        ];
        description = "TensorBoard related functionality";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-mnist" = callPackage
@@ -241574,8 +241393,6 @@ self: {
        ];
        description = "Code generation for TensorFlow operations";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-ops" = callPackage
@@ -241605,8 +241422,6 @@ self: {
        ];
        description = "Friendly layer around TensorFlow bindings";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "tensorflow-proto" = callPackage
@@ -241624,8 +241439,6 @@ self: {
        libraryToolDepends = [ protobuf ];
        description = "TensorFlow protocol buffers";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) protobuf;};
 
   "tensorflow-records" = callPackage
@@ -242744,6 +242557,29 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "texmath_0_12_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , mtl, pandoc-types, parsec, process, syb, temporary, text
+     , utf8-string, xml
+     }:
+     mkDerivation {
+       pname = "texmath";
+       version = "0.12.0.2";
+       sha256 = "116i1f1qnkraygf05lpw7vg3h6zk8lh14k4i2yx6prb649d2iv1g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers mtl pandoc-types parsec syb text xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath process temporary text
+         utf8-string xml
+       ];
+       description = "Conversion between formats used to represent mathematics";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "texrunner" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, directory, filepath
      , HUnit, io-streams, lens, mtl, process, semigroups, temporary
@@ -242943,8 +242779,6 @@ self: {
        ];
        description = "Text formatting";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "text-format-heavy" = callPackage
@@ -244198,25 +244032,6 @@ self: {
      }:
      mkDerivation {
        pname = "th-lift-instances";
-       version = "0.1.15";
-       sha256 = "07x8rclsn355zsacgh9xk97j6n13d3457rwcpbwrw5lmq8qz3c13";
-       libraryHaskellDepends = [
-         base bytestring containers template-haskell text th-lift
-         transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers QuickCheck template-haskell text vector
-       ];
-       description = "Lift instances for template-haskell for common data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "th-lift-instances_0_1_16" = callPackage
-    ({ mkDerivation, base, bytestring, containers, QuickCheck
-     , template-haskell, text, th-lift, transformers, vector
-     }:
-     mkDerivation {
-       pname = "th-lift-instances";
        version = "0.1.16";
        sha256 = "08ivlz37ir2xyl8ch5x4n2gb34rgk5ryaybfr2xbfc4ah4zfjfav";
        libraryHaskellDepends = [
@@ -244228,7 +244043,6 @@ self: {
        ];
        description = "Lift instances for template-haskell for common data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "th-nowq" = callPackage
@@ -244250,27 +244064,6 @@ self: {
      }:
      mkDerivation {
        pname = "th-orphans";
-       version = "0.13.9";
-       sha256 = "1xj1gssv77hdx1r3ndg8k49v3ipj3a6r7crkyvx13jrps3m6ng1z";
-       revision = "1";
-       editedCabalFile = "100gpi0np50vxlapyl6d05w8ss9l2gqacn28i228hsvhvrxxwjdy";
-       libraryHaskellDepends = [
-         base mtl template-haskell th-lift th-lift-instances th-reify-many
-       ];
-       testHaskellDepends = [
-         base bytestring ghc-prim hspec template-haskell th-lift
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Orphan instances for TH datatypes";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "th-orphans_0_13_10" = callPackage
-    ({ mkDerivation, base, bytestring, ghc-prim, hspec, hspec-discover
-     , mtl, template-haskell, th-lift, th-lift-instances, th-reify-many
-     }:
-     mkDerivation {
-       pname = "th-orphans";
        version = "0.13.10";
        sha256 = "0a69jrvialwg9g1h3j729jahl47h9ar5xxjqbi3pxyfc94v5fcs4";
        libraryHaskellDepends = [
@@ -244282,7 +244075,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Orphan instances for TH datatypes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "th-pprint" = callPackage
@@ -245383,27 +245175,6 @@ self: {
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.4.8";
-       sha256 = "163ndsx6spicipsy52iqsrm97z6pfr4mm93d2dz7ffckbzsklmdb";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bifunctors bytestring clock colour containers deepseq hosc
-         mwc-random network parsec primitive random text transformers vector
-       ];
-       testHaskellDepends = [ base containers microspec parsec ];
-       benchmarkHaskellDepends = [ base criterion weigh ];
-       description = "Pattern language for improvised music";
-       license = stdenv.lib.licenses.gpl3;
-     }) {};
-
-  "tidal_1_4_9" = callPackage
-    ({ mkDerivation, base, bifunctors, bytestring, clock, colour
-     , containers, criterion, deepseq, hosc, microspec, mwc-random
-     , network, parsec, primitive, random, text, transformers, vector
-     , weigh
-     }:
-     mkDerivation {
-       pname = "tidal";
        version = "1.4.9";
        sha256 = "0np32jnvqmnnqy166a17i367c5j5xc9mniqzr0x76wk7mb5zlwzj";
        enableSeparateDataOutput = true;
@@ -245415,7 +245186,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
        license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tidal-midi" = callPackage
@@ -246419,6 +246189,22 @@ self: {
        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 = [
+         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;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "timezone-olson-th" = callPackage
     ({ mkDerivation, base, template-haskell, time, timezone-olson
      , timezone-series
@@ -251573,6 +251359,19 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "type-errors-pretty_0_0_1_1" = callPackage
+    ({ mkDerivation, base, doctest, Glob }:
+     mkDerivation {
+       pname = "type-errors-pretty";
+       version = "0.0.1.1";
+       sha256 = "1z6rqah3qnvnlckcw3xhsp4yyfd21harw6kzqbz20y6k7a22jlf0";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest Glob ];
+       description = "Combinators for writing pretty type errors easily";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "type-fun" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -252470,6 +252269,32 @@ self: {
        broken = true;
      }) {};
 
+  "typerep-map_0_3_3_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, deepseq
+     , dependent-map, dependent-sum, ghc-prim, ghc-typelits-knownnat
+     , hedgehog, hspec, hspec-hedgehog, primitive, vector
+     }:
+     mkDerivation {
+       pname = "typerep-map";
+       version = "0.3.3.0";
+       sha256 = "0j7f7k0knpdsh41p0bzg7yv32nz684s3vrxc8pig5ckmmadc4mh4";
+       libraryHaskellDepends = [
+         base containers deepseq ghc-prim primitive vector
+       ];
+       testHaskellDepends = [
+         base ghc-typelits-knownnat hedgehog hspec hspec-hedgehog
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq dependent-map dependent-sum
+         ghc-typelits-knownnat
+       ];
+       doHaddock = false;
+       description = "Efficient implementation of a dependent map with types as keys";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "types-compat" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -253772,12 +253597,16 @@ self: {
      }) {};
 
   "unicode-tricks" = callPackage
-    ({ mkDerivation, base, data-default, QuickCheck, text }:
+    ({ mkDerivation, base, data-default, hspec, hspec-discover
+     , QuickCheck, text
+     }:
      mkDerivation {
        pname = "unicode-tricks";
-       version = "0.5.0.0";
-       sha256 = "0zbsph58w6lfc2357zkl46nm0y08bh3d29ihz6jgpvzi6cxgf5fl";
+       version = "0.7.0.0";
+       sha256 = "0lwpdqzprm0s7dgn5pvb6plklr45s4qqa0cbash296zcx8195imx";
        libraryHaskellDepends = [ base data-default QuickCheck text ];
+       testHaskellDepends = [ base hspec ];
+       testToolDepends = [ hspec-discover ];
        description = "Functions to work with unicode blocks more convenient";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -257000,6 +256829,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "validity-containers_0_5_0_3" = callPackage
+    ({ mkDerivation, base, containers, validity }:
+     mkDerivation {
+       pname = "validity-containers";
+       version = "0.5.0.3";
+       sha256 = "064sd52y3cmfz9j1yhfz6wsm3993mnh9xgyzy6jzd4cdfmh19sdd";
+       libraryHaskellDepends = [ base containers validity ];
+       description = "Validity instances for containers";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "validity-path" = callPackage
     ({ mkDerivation, base, filepath, genvalidity-hspec, hspec, path
      , validity
@@ -262755,8 +262596,6 @@ self: {
        ];
        description = "webfont generator";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "webkit" = callPackage
@@ -263834,15 +263673,18 @@ self: {
      }) {};
 
   "with-utf8" = callPackage
-    ({ mkDerivation, base, deepseq, hedgehog, HUnit, safe-exceptions
-     , tasty, tasty-discover, tasty-hedgehog, tasty-hunit, temporary
-     , text, unix
+    ({ mkDerivation, base, deepseq, directory, hedgehog, HUnit
+     , safe-exceptions, tasty, tasty-discover, tasty-hedgehog
+     , tasty-hunit, temporary, text, unix
      }:
      mkDerivation {
        pname = "with-utf8";
-       version = "1.0.0.0";
-       sha256 = "06xznaszw7d6rznvzhzw3y4z31b4vx4djms85rq4qsbpfbdrh2zc";
+       version = "1.0.1.0";
+       sha256 = "07b3zpdnaqvp7ipbjnq17is5a70l2bncjqxlnhixpq91bbsczlrp";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [ base safe-exceptions text ];
+       executableHaskellDepends = [ base directory ];
        testHaskellDepends = [
          base deepseq hedgehog HUnit safe-exceptions tasty tasty-hedgehog
          tasty-hunit temporary text unix
@@ -264882,6 +264724,44 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "wreq-patchable" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec
+     , authenticate-oauth, base, base16-bytestring, base64-bytestring
+     , bytestring, Cabal, cabal-doctest, case-insensitive, containers
+     , cryptonite, directory, doctest, exceptions, filepath, ghc-prim
+     , hashable, http-client, http-client-tls, http-types, HUnit, lens
+     , lens-aeson, memory, mime-types, network-info, psqueues
+     , QuickCheck, snap-core, snap-server, template-haskell, temporary
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, time, time-locale-compat, transformers, unix-compat
+     , unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "wreq-patchable";
+       version = "1.0.0.0";
+       sha256 = "0dj1cq8jmvwk12r5b5hmlj5m9hbhkhjz8bm3zxahwqap5kbi7c1c";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec authenticate-oauth base base16-bytestring
+         bytestring case-insensitive containers cryptonite exceptions
+         ghc-prim hashable http-client http-client-tls http-types lens
+         lens-aeson memory mime-types psqueues template-haskell text time
+         time-locale-compat unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring
+         case-insensitive containers directory doctest filepath hashable
+         http-client http-types HUnit lens lens-aeson network-info
+         QuickCheck snap-core snap-server temporary test-framework
+         test-framework-hunit test-framework-quickcheck2 text time
+         transformers unix-compat unordered-containers uuid vector
+       ];
+       description = "An easy-to-use HTTP client library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wreq-sb" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec
      , authenticate-oauth, base, base16-bytestring, base64-bytestring
@@ -266581,8 +266461,8 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit-stylist";
-       version = "1.1.0.0";
-       sha256 = "0bj6mcd4k6wlrzizf3j2mnmbbl624k0xcsfrz9c3wpvdxb9iyqsr";
+       version = "1.2.0.0";
+       sha256 = "140ydh4yzafdiksh149jxvbjsd4r7bvfdh620bawqwnnc5dpk01q";
        libraryHaskellDepends = [
          base containers css-syntax network-uri stylist text
          unordered-containers xml-conduit
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index aebab7b6f04..58d50592ac4 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -86,6 +86,11 @@ rec {
      future.
 
      Instead of jailbreaking, you can patch the cabal file.
+     
+     Note that jailbreaking at this time, doesn't lift bounds on
+     conditional branches. 
+     https://github.com/peti/jailbreak-cabal/issues/7 has further details.
+     
    */
   doJailbreak = drv: overrideCabal drv (drv: { jailbreak = true; });
 
diff --git a/pkgs/development/haskell-modules/patches/darcs-2.14.2-Compile-against-GHC-8.8.patch b/pkgs/development/haskell-modules/patches/darcs-2.14.2-Compile-against-GHC-8.8.patch
new file mode 100644
index 00000000000..04ff068e1d0
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/darcs-2.14.2-Compile-against-GHC-8.8.patch
@@ -0,0 +1,333 @@
+From 2490fa65eeba52699a7c0e303aa5cb9b78c2b1cf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
+Date: Fri, 17 Apr 2020 20:49:23 +0200
+Subject: [PATCH] Compile against GHC 8.8
+
+---
+ Setup.hs                           | 15 ---------------
+ src/Darcs/Patch/Depends.hs         |  2 +-
+ src/Darcs/Patch/Match.hs           | 12 ++++++------
+ src/Darcs/Patch/PatchInfoAnd.hs    |  2 +-
+ src/Darcs/Patch/Prim/V1/Apply.hs   |  6 +++---
+ src/Darcs/Patch/Prim/V1/Commute.hs |  1 +
+ src/Darcs/Patch/ReadMonads.hs      |  1 +
+ src/Darcs/Patch/V1/Commute.hs      |  1 +
+ src/Darcs/Repository/Diff.hs       |  2 +-
+ src/Darcs/Repository/Match.hs      |  2 +-
+ src/Darcs/Util/Tree/Monad.hs       |  4 ++--
+ 12 files changed, 30 insertions(+), 42 deletions(-)
+
+diff --git a/Setup.hs b/Setup.hs
+index f5cc3e8..05caac4 100644
+--- a/Setup.hs
++++ b/Setup.hs
+@@ -75,21 +75,6 @@
+   postInst = \ _ flags pkg lbi ->
+              installManpage pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest,
+ 
+-  sDistHook = \ pkg lbi hooks flags -> do
+-    let pkgVer = packageVersion pkg
+-        verb = fromFlag $ sDistVerbosity flags
+-    x <- versionPatches verb pkgVer
+-    y <- context verb
+-    rewriteFileEx silent "release/distributed-version" $ show x
+-    rewriteFileEx silent "release/distributed-context" $ show y
+-    putStrLn "about to hand over"
+-    let pkg' = pkg { library = sanity (library pkg) }
+-        sanity (Just lib) = Just $ lib { libBuildInfo = sanity' $ libBuildInfo lib }
+-        sanity _ = error "eh"
+-        sanity' bi = bi { otherModules = [ m | m <- otherModules bi, toFilePath m /= "Version" ] }
+-
+-    sDistHook simpleUserHooks pkg' lbi hooks flags
+-             ,
+   postConf = \_ _ _ _ -> return () --- Usually this checked for external C
+              --- dependencies, but we already have performed such
+              --- check in the confHook
+--- a/darcs.cabal	1970-01-01 01:00:01.000000000 +0100
++++ b/darcs.cabal	2020-04-18 10:26:07.605129733 +0200
+@@ -1,6 +1,5 @@
+ Name:           darcs

+ version:        2.14.2

+-x-revision: 1

+ License:        GPL-2

+ License-file:   COPYING

+ Author:         David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>

+@@ -75,7 +74,7 @@
+   description: Use libcurl for HTTP support.

+ 

+ -- in future this could extend to any other external libraries,

+--- e.g. libiconv 

++-- e.g. libiconv

+ flag pkgconfig

+   description: Use pkgconfig to configure libcurl

+   default: False

+@@ -113,7 +112,7 @@
+ -- ----------------------------------------------------------------------

+ 

+ custom-setup

+-    setup-depends: base      >= 4.9 && < 4.13,

++    setup-depends: base      >= 4.9 && <5,

+                    Cabal     >= 1.24,

+                    process   >= 1.2.3.0 && < 1.7,

+                    filepath  >= 1.4.1 && < 1.5.0.0,

+@@ -381,7 +380,7 @@
+     else

+       build-depends:  unix >= 2.7.1.0 && < 2.8

+ 

+-    build-depends:    base              >= 4.9 && < 4.13,

++    build-depends:    base              >= 4.9 && <5,

+                       stm               >= 2.1 && < 2.6,

+                       binary            >= 0.5 && < 0.10,

+                       containers        >= 0.5.6.2 && < 0.7,

+@@ -402,19 +401,19 @@
+                       tar               >= 0.5 && < 0.6,

+                       data-ordlist      == 0.4.*,

+                       attoparsec        >= 0.13.0.1 && < 0.14,

+-                      zip-archive       >= 0.3 && < 0.5,

++                      zip-archive       >= 0.3 && <1,

+                       async             >= 2.0.2 && < 2.3,

+-                      sandi             >= 0.4 && < 0.6,

++                      sandi             >= 0.4 && <1,

+                       unix-compat       >= 0.4.2 && < 0.6,

+                       bytestring        >= 0.10.6 && < 0.11,

+                       old-time          >= 1.1.0.3 && < 1.2,

+                       time              >= 1.5.0.1 && < 1.10,

+-                      text              >= 1.2.1.3 && < 1.3,

++                      text              >= 1.2.1.3 && <2,

+                       directory         >= 1.2.6.2 && < 1.4,

+                       process           >= 1.2.3.0 && < 1.7,

+                       array             >= 0.5.1.0 && < 0.6,

+                       random            >= 1.1 && < 1.2,

+-                      hashable          >= 1.2.3.3 && < 1.3,

++                      hashable          >= 1.2.3.3 && <2,

+                       mmap              >= 0.5.9 && < 0.6,

+                       zlib              >= 0.6.1.2 && < 0.7.0.0,

+                       network-uri       == 2.6.*,

+@@ -443,7 +442,7 @@
+ 

+     -- The terminfo package cannot be built on Windows.

+     if flag(terminfo) && !os(windows)

+-      build-depends:  terminfo >= 0.4.0.2 && < 0.5

++      build-depends:  terminfo >= 0.4.0.2 && <1

+       cpp-options:    -DHAVE_TERMINFO

+ 

+     default-extensions:

+@@ -500,7 +499,7 @@
+   cc-options:       -D_REENTRANT

+ 

+   build-depends:    darcs,

+-                    base              >= 4.9 && < 4.13

++                    base              >= 4.9 && <5

+ 

+ -- ----------------------------------------------------------------------

+ -- unit test driver

+@@ -518,7 +517,7 @@
+     build-depends:  Win32 >= 2.3.1 && < 2.4

+ 

+   build-depends:    darcs,

+-                    base         >= 4.9 && < 4.13,

++                    base         >= 4.9 && <5,

+                     array        >= 0.5.1.0 && < 0.6,

+                     bytestring   >= 0.10.6 && < 0.11,

+                     cmdargs      >= 0.10.10 && < 0.11,

+@@ -527,15 +526,15 @@
+                     mtl          >= 2.2.1 && < 2.3,

+                     shelly       >= 1.6.8 && < 1.9,

+                     split        >= 0.2.2 && < 0.3,

+-                    text         >= 1.2.1.3 && < 1.3,

++                    text         >= 1.2.1.3 && <2,

+                     directory    >= 1.2.6.2 && < 1.4,

+                     FindBin      >= 0.0.5 && < 0.1,

+-                    QuickCheck   >= 2.8.2 && < 2.13,

++                    QuickCheck   >= 2.8.2 && <3,

+                     HUnit        >= 1.3 && < 1.7,

+                     test-framework             >= 0.8.1.1 && < 0.9,

+                     test-framework-hunit       >= 0.3.0.2 && < 0.4,

+                     test-framework-quickcheck2 >= 0.3.0.3 && < 0.4,

+-                    zip-archive  >= 0.3 && < 0.5

++                    zip-archive  >= 0.3 && <1

+ 

+   -- https://github.com/yesodweb/Shelly.hs/issues/177

+   if os(windows)

+diff --git a/src/Darcs/Patch/Depends.hs b/src/Darcs/Patch/Depends.hs
+index 8531294..a4c71cb 100644
+--- a/src/Darcs/Patch/Depends.hs
++++ b/src/Darcs/Patch/Depends.hs
+@@ -251,7 +251,7 @@ splitOnTag _ (PatchSet NilRL NilRL) = Nothing
+ unwrapOneTagged :: (Monad m) => PatchSet rt p wX wY -> m (PatchSet rt p wX wY)
+ unwrapOneTagged (PatchSet (ts :<: Tagged t _ tps) ps) =
+     return $ PatchSet ts (tps :<: t +<+ ps)
+-unwrapOneTagged _ = fail "called unwrapOneTagged with no Tagged's in the set"
++unwrapOneTagged _ = error "called unwrapOneTagged with no Tagged's in the set"
+ 
+ -- | @getUncovered ps@ returns the 'PatchInfo' for all the patches in
+ --   @ps@ that are not depended on by anything else *through explicit
+diff --git a/src/Darcs/Patch/Match.hs b/src/Darcs/Patch/Match.hs
+index aba6c7a..2b6f53a 100644
+--- a/src/Darcs/Patch/Match.hs
++++ b/src/Darcs/Patch/Match.hs
+@@ -421,7 +421,7 @@ getNonrangeMatchS fs repo =
+         Just m -> if nonrangeMatcherIsTag fs
+                         then getTagS m repo
+                         else getMatcherS Exclusive m repo
+-        Nothing -> fail "Pattern not specified in getNonrangeMatch."
++        Nothing -> error "Pattern not specified in getNonrangeMatch."
+ 
+ -- | @firstMatch fs@ tells whether @fs@ implies a "first match", that
+ -- is if we match against patches from a point in the past on, rather
+@@ -441,7 +441,7 @@ getFirstMatchS fs repo =
+      Just (_,b) -> unpullLastN repo b -- b is chronologically earlier than a
+      Nothing    ->
+       case firstMatcher fs of
+-               Nothing -> fail "Pattern not specified in getFirstMatchS."
++               Nothing -> error "Pattern not specified in getFirstMatchS."
+                Just m -> if firstMatcherIsTag fs
+                          then getTagS m repo
+                          else getMatcherS Inclusive m repo
+@@ -462,7 +462,7 @@ checkMatchSyntax :: [MatchFlag] -> IO ()
+ checkMatchSyntax opts =
+  case getMatchPattern opts of
+   Nothing -> return ()
+-  Just p  -> either fail (const $ return ()) (parseMatch p::Either String (MatchFun rt DummyPatch))
++  Just p  -> either error (const $ return ()) (parseMatch p::Either String (MatchFun rt DummyPatch))
+ 
+ getMatchPattern :: [MatchFlag] -> Maybe String
+ getMatchPattern [] = Nothing
+@@ -718,7 +718,7 @@ getMatcherS :: (ApplyMonad (ApplyState p) m, Matchable p) =>
+ getMatcherS ioe m repo =
+     if matchExists m repo
+     then applyInvToMatcher ioe m repo
+-    else fail $ "Couldn't match pattern "++ show m
++    else error $ "Couldn't match pattern "++ show m
+ 
+ getTagS :: (ApplyMonad (ApplyState p) m, MonadProgress m, Matchable p) =>
+              Matcher rt p -> PatchSet rt p Origin wX -> m ()
+diff --git a/src/Darcs/Patch/PatchInfoAnd.hs b/src/Darcs/Patch/PatchInfoAnd.hs
+index 2da7ec8..1147410 100644
+--- a/src/Darcs/Patch/PatchInfoAnd.hs
++++ b/src/Darcs/Patch/PatchInfoAnd.hs
+@@ -167,7 +167,7 @@ conscientiously er (PIAP pinf hp) =
+ 
+ -- | @hopefullyM@ is a version of @hopefully@ which calls @fail@ in a
+ -- monad instead of erroring.
+-hopefullyM :: Monad m => PatchInfoAnd rt p wA wB -> m (WrappedNamed rt p wA wB)
++hopefullyM :: MonadFail m => PatchInfoAnd rt p wA wB -> m (WrappedNamed rt p wA wB)
+ hopefullyM (PIAP pinf hp) = case hopefully2either hp of
+                               Right p -> return p
+                               Left e -> fail $ renderString
+diff --git a/src/Darcs/Patch/Prim/V1/Apply.hs b/src/Darcs/Patch/Prim/V1/Apply.hs
+index bea7e41..7984d21 100644
+--- a/src/Darcs/Patch/Prim/V1/Apply.hs
++++ b/src/Darcs/Patch/Prim/V1/Apply.hs
+@@ -41,13 +41,13 @@ instance Apply Prim where
+     apply (FP f (TokReplace t o n)) = mModifyFilePS f doreplace
+         where doreplace fc =
+                   case tryTokReplace t (BC.pack o) (BC.pack n) fc of
+-                  Nothing -> fail $ "replace patch to " ++ fn2fp f
++                  Nothing -> error $ "replace patch to " ++ fn2fp f
+                              ++ " couldn't apply."
+                   Just fc' -> return fc'
+     apply (FP f (Binary o n)) = mModifyFilePS f doapply
+         where doapply oldf = if o == oldf
+                              then return n
+-                             else fail $ "binary patch to " ++ fn2fp f
++                             else error $ "binary patch to " ++ fn2fp f
+                                   ++ " couldn't apply."
+     apply (DP d AddDir) = mCreateDirectory d
+     apply (DP d RmDir) = mRemoveDirectory d
+@@ -115,7 +115,7 @@ applyHunk f h fc =
+   case applyHunkLines h fc of
+     Right fc' -> return fc'
+     Left msg ->
+-      fail $
++      error $
+       "### Error applying:\n" ++ renderHunk h ++
+       "\n### to file " ++ fn2fp f ++ ":\n" ++ BC.unpack fc ++
+       "### Reason: " ++ msg
+diff --git a/src/Darcs/Patch/Prim/V1/Commute.hs b/src/Darcs/Patch/Prim/V1/Commute.hs
+index 7639dbd..e1432e6 100644
+--- a/src/Darcs/Patch/Prim/V1/Commute.hs
++++ b/src/Darcs/Patch/Prim/V1/Commute.hs
+@@ -58,6 +58,7 @@ instance  Monad Perhaps where
+     Failed   >>= _      =  Failed
+     Unknown  >>= _      =  Unknown
+     return              =  Succeeded
++instance  MonadFail Perhaps where
+     fail _              =  Unknown
+ 
+ instance Alternative Perhaps where
+diff --git a/src/Darcs/Patch/ReadMonads.hs b/src/Darcs/Patch/ReadMonads.hs
+index 62a4f81..e1cb149 100644
+--- a/src/Darcs/Patch/ReadMonads.hs
++++ b/src/Darcs/Patch/ReadMonads.hs
+@@ -237,6 +237,7 @@ failSM _ = SM (\_ -> Nothing)
+ instance Monad SM where
+     (>>=)  = bindSM
+     return = returnSM
++instance MonadFail SM where
+     fail   = failSM
+ 
+ instance ParserM SM where
+diff --git a/src/Darcs/Patch/V1/Commute.hs b/src/Darcs/Patch/V1/Commute.hs
+index 0bb41a3..c6c3382 100644
+--- a/src/Darcs/Patch/V1/Commute.hs
++++ b/src/Darcs/Patch/V1/Commute.hs
+@@ -93,6 +93,7 @@ instance  Monad Perhaps where
+     Failed   >>= _      =  Failed
+     Unknown  >>= _      =  Unknown
+     return              =  Succeeded
++instance  MonadFail Perhaps where
+     fail _              =  Unknown
+ 
+ instance Alternative Perhaps where
+diff --git a/src/Darcs/Repository/Diff.hs b/src/Darcs/Repository/Diff.hs
+index 8078d49..e0e2341 100644
+--- a/src/Darcs/Repository/Diff.hs
++++ b/src/Darcs/Repository/Diff.hs
+@@ -138,7 +138,7 @@ treeDiff da ft t1 t2 = do
+         do rmDirP <- diff p (Removed subtree)
+            addFileP <- diff p (Changed (File emptyBlob) b')
+            return $ joinGap (+>+) rmDirP addFileP
+-    diff p _ = fail $ "Missing case at path " ++ show p
++    diff p _ = error $ "Missing case at path " ++ show p
+ 
+     text_diff p a b
+         | BL.null a && BL.null b = emptyGap NilFL
+diff --git a/src/Darcs/Repository/Match.hs b/src/Darcs/Repository/Match.hs
+index 08c9f13..f33cabe 100644
+--- a/src/Darcs/Repository/Match.hs
++++ b/src/Darcs/Repository/Match.hs
+@@ -60,7 +60,7 @@ getNonrangeMatch :: (ApplyMonad (ApplyState p) DefaultIO, IsRepoType rt, RepoPat
+ getNonrangeMatch r = withRecordedMatch r . getMatch where
+   getMatch fs = case hasIndexRange fs of
+     Just (n, m) | n == m -> applyNInv (n-1)
+-                | otherwise -> fail "Index range is not allowed for this command."
++                | otherwise -> error "Index range is not allowed for this command."
+     _ -> getNonrangeMatchS fs
+ 
+ getOnePatchset :: (IsRepoType rt, RepoPatch p)
+diff --git a/src/Darcs/Util/Tree/Monad.hs b/src/Darcs/Util/Tree/Monad.hs
+index 0e01d9b..296fdc4 100644
+--- a/src/Darcs/Util/Tree/Monad.hs
++++ b/src/Darcs/Util/Tree/Monad.hs
+@@ -216,7 +216,7 @@ instance (Monad m) => TreeRO (TreeMonad m) where
+            t <- gets tree
+            let f = findFile t p'
+            case f of
+-             Nothing -> fail $ "No such file " ++ show p'
++             Nothing -> error $ "No such file " ++ show p'
+              Just x -> lift (readBlob x)
+ 
+     currentDirectory = ask
+@@ -251,7 +251,7 @@ instance (Monad m) => TreeRW (TreeMonad m) where
+            let item = find tr from'
+                found_to = find tr to'
+            unless (isNothing found_to) $
+-                  fail $ "Error renaming: destination " ++ show to ++ " exists."
++                  error $ "Error renaming: destination " ++ show to ++ " exists."
+            unless (isNothing item) $ do
+                   modifyItem from Nothing
+                   modifyItem to item
+-- 
+2.23.1
+
diff --git a/pkgs/development/haskell-modules/patches/darcs-setup.patch b/pkgs/development/haskell-modules/patches/darcs-setup.patch
new file mode 100644
index 00000000000..fbc7efde428
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/darcs-setup.patch
@@ -0,0 +1,120 @@
+--- darcs-2.14.2/Setup.hs	2019-01-27 03:14:51.000000000 +1300
++++ darcs.net/Setup.hs	2019-10-18 02:41:57.000000000 +1300
+@@ -11,7 +11,9 @@
+          , TestSuite(testBuildInfo)
+          , updatePackageDescription
+          , cppOptions, ccOptions
+-         , library, libBuildInfo, otherModules )
++         , library, libBuildInfo, otherModules
++         , ComponentName(CExeName)
++         )
+ import Distribution.Package
+          ( packageVersion )
+ import Distribution.Version( Version )
+@@ -21,24 +23,27 @@
+ import Distribution.Simple.Setup
+     (buildVerbosity, copyDest, copyVerbosity, fromFlag,
+      haddockVerbosity, installVerbosity, sDistVerbosity, replVerbosity )
+-import Distribution.Simple.BuildPaths ( autogenModulesDir )
++import Distribution.Simple.BuildPaths ( autogenPackageModulesDir )
+ import Distribution.System
+          ( OS(Windows), buildOS )
+ import Distribution.Simple.Utils
+     (copyFiles, createDirectoryIfMissingVerbose, rawSystemStdout,
+-     rewriteFile )
++     rewriteFileEx)
++import Distribution.Types.UnqualComponentName
+ import Distribution.Verbosity
+-         ( Verbosity )
++         ( Verbosity, silent )
+ import Distribution.Text
+          ( display )
+-import Control.Monad ( unless, void )
+ 
++import Control.Monad ( unless, when, void )
+ import System.Directory
+     ( doesDirectoryExist, doesFileExist )
+ import System.IO
+     ( openFile, IOMode(..) )
+ import System.Process (runProcess)
+ import Data.List( isInfixOf, lines )
++import qualified Data.Map as M
++import Data.Maybe ( isJust )
+ import System.FilePath       ( (</>) )
+ import Foreign.Marshal.Utils ( with )
+ import Foreign.Storable      ( peek )
+@@ -75,8 +80,8 @@
+         verb = fromFlag $ sDistVerbosity flags
+     x <- versionPatches verb pkgVer
+     y <- context verb
+-    rewriteFile "release/distributed-version" $ show x
+-    rewriteFile "release/distributed-context" $ show y
++    rewriteFileEx silent "release/distributed-version" $ show x
++    rewriteFileEx silent "release/distributed-context" $ show y
+     putStrLn "about to hand over"
+     let pkg' = pkg { library = sanity (library pkg) }
+         sanity (Just lib) = Just $ lib { libBuildInfo = sanity' $ libBuildInfo lib }
+@@ -105,8 +110,7 @@
+   littleEndian <- testEndianness
+   let args = ("-DPACKAGE_VERSION=" ++ show' version) :
+              [arg | (arg, True) <-         -- include fst iff snd.
+-              [-- We have MAPI iff building on/for Windows.
+-               ("-DHAVE_MAPI", buildOS == Windows),
++              [
+                ("-DLITTLEENDIAN", littleEndian),
+                ("-DBIGENDIAN", not littleEndian)]]
+       bi = emptyBuildInfo { cppOptions = args, ccOptions = args }
+@@ -133,20 +137,26 @@
+ -- man page
+ -- ---------------------------------------------------------------------
+ 
++hasDarcsExe :: LocalBuildInfo -> Bool
++hasDarcsExe = isJust . M.lookup darcsExe . componentNameMap where
++  darcsExe = CExeName (mkUnqualComponentName "darcs")
++
+ buildManpage :: LocalBuildInfo -> IO ()
+-buildManpage lbi = do
+-  let darcs = buildDir lbi </> "darcs/darcs"
+-      manpage = buildDir lbi </> "darcs/darcs.1"
+-  manpageHandle <- openFile manpage WriteMode
+-  void $ runProcess darcs ["help","manpage"]
+-             Nothing Nothing Nothing (Just manpageHandle) Nothing
++buildManpage lbi =
++  when (hasDarcsExe lbi) $ do
++    let darcs = buildDir lbi </> "darcs/darcs"
++        manpage = buildDir lbi </> "darcs/darcs.1"
++    manpageHandle <- openFile manpage WriteMode
++    void $ runProcess darcs ["help","manpage"]
++            Nothing Nothing Nothing (Just manpageHandle) Nothing
+ 
+-installManpage :: PackageDescription -> LocalBuildInfo
+-                  -> Verbosity -> CopyDest -> IO ()
++installManpage :: PackageDescription -> LocalBuildInfo -> Verbosity -> CopyDest -> IO ()
+ installManpage pkg lbi verbosity copy =
+-    copyFiles verbosity
+-              (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
+-              [(buildDir lbi </> "darcs", "darcs.1")]
++  when (hasDarcsExe lbi) $
++    copyFiles
++      verbosity
++      (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
++      [(buildDir lbi </> "darcs", "darcs.1")]
+ 
+ -- ---------------------------------------------------------------------
+ -- version module
+@@ -187,12 +197,13 @@
+ generateVersionModule :: Verbosity -> LocalBuildInfo
+                       -> String -> String -> IO ()
+ generateVersionModule verbosity lbi version state = do
+-  let dir = autogenModulesDir lbi
++  let dir = autogenPackageModulesDir lbi
+   createDirectoryIfMissingVerbose verbosity True dir
+   ctx <- context verbosity
+   hash <- weakhash verbosity
+-  rewriteFile (dir </> "Version.hs") $ unlines
++  rewriteFileEx silent (dir </> "Version.hs") $ unlines
+     ["module Version where"
++    ,"import Darcs.Prelude"
+     ,"version, weakhash, context :: String"
+     ,"version = \"" ++ version ++ " (" ++ state ++ ")\""
+     ,"weakhash = " ++ case hash of
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index 9445d42f24e..39b243a0ce6 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -4,15 +4,15 @@
 
 let hashes = {
   "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
-  "8.2" = "1x33kv6w9cbqzvyrihn61pzmqlvnk3drm8ksd5v0arg38i95awi3";
+  "8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
 };
 revs = {
   "8.0" = "8.0";
-  "8.2" = "8.2";
+  "8.3" = "8.3";
 };
 in stdenv.mkDerivation rec {
   pname = "acl2";
-  version = "8.2";
+  version = "8.3";
 
   src = fetchFromGitHub {
     owner = "acl2-devel";
@@ -72,6 +72,7 @@ in stdenv.mkDerivation rec {
     #[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ];
     license = stdenv.lib.licenses.bsd3;
     maintainers = with stdenv.lib.maintainers; [ kini raskin ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.all;
+    broken = stdenv.isAarch64 && stdenv.isLinux;
   };
 }
diff --git a/pkgs/development/libraries/agda/agda-stdlib/default.nix b/pkgs/development/libraries/agda/agda-stdlib/default.nix
index 6056173c311..6647677f71c 100644
--- a/pkgs/development/libraries/agda/agda-stdlib/default.nix
+++ b/pkgs/development/libraries/agda/agda-stdlib/default.nix
@@ -19,7 +19,7 @@ agda.mkDerivation (self: rec {
   topSourceDirectories = [ "src" ];
 
   meta = with stdenv.lib; {
-    homepage = "http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
+    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;
diff --git a/pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch b/pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch
deleted file mode 100644
index c49ebb550f3..00000000000
--- a/pkgs/development/libraries/allegro/allegro4-mesa-18.2.5.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/addons/allegrogl/include/alleggl.h
-+++ b/addons/allegrogl/include/alleggl.h
-@@ -63,9 +63,11 @@ typedef __int64 INT64;
- /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
- #define __glext_h_
- #define __glxext_h_
-+#define __glx_glxext_h_
- #include <GL/gl.h>
- #undef  __glext_h_
- #undef  __glxext_h_
-+#undef  __glx_glxext_h_
- 
- #endif /* ALLEGRO_MACOSX */
- 
---- a/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
-+++ b/addons/allegrogl/include/allegrogl/GLext/glx_ext_defs.h
-@@ -1,7 +1,9 @@
- /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
- #define __glxext_h_
-+#define __glx_glxext_h_
- #include <GL/glx.h>
- #undef __glxext_h_
-+#undef __glx_glxext_h_
- 
- #ifndef GLX_VERSION_1_3
- #define AGLX_VERSION_1_3
diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix
index 963590d4faf..6071f63255d 100644
--- a/pkgs/development/libraries/allegro/default.nix
+++ b/pkgs/development/libraries/allegro/default.nix
@@ -5,15 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "allegro";
-  version="4.4.2";
+  version="4.4.3.1";
 
   src = fetchurl {
     url = "https://github.com/liballeg/allegro5/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1p0ghkmpc4kwij1z9rzxfv7adnpy4ayi0ifahlns1bdzgmbyf88v";
+    sha256 = "1m6lz35nk07dli26kkwz3wa50jsrxs1kb6w1nj14a911l34xn6gc";
   };
 
   patches = [
-    ./allegro4-mesa-18.2.5.patch
     ./nix-unstable-sandbox-fix.patch
   ];
 
diff --git a/pkgs/development/libraries/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix
index 19ee39a3b9e..91fd83bf916 100644
--- a/pkgs/development/libraries/aspell/default.nix
+++ b/pkgs/development/libraries/aspell/default.nix
@@ -8,7 +8,7 @@ let
   # dictionary like Debian does.
   devaMapsSource = fetchzip {
     name = "aspell-u-deva";
-    url = "ftp://ftp.gnu.org/gnu/aspell/dict/mr/aspell6-mr-0.10-0.tar.bz2";
+    url = "https://ftp.gnu.org/gnu/aspell/dict/mr/aspell6-mr-0.10-0.tar.bz2";
     sha256 = "1v8cdl8x2j1d4vbvsq1xrqys69bbccd6mi03fywrhkrrljviyri1";
   };
 
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index ec8c4b81dd1..e415aa5e4f2 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 libsndfile python3 ];
 
   meta = with stdenv.lib; {
-    homepage = "http://lv2plug.in";
+    homepage = "https://lv2plug.in";
     description = "A plugin standard for audio systems";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 17aab0c8a34..42e1a252a76 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,16 +1,26 @@
-{ stdenv, fetchFromGitHub, cmake }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "fmt";
-  version = "6.1.2";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "fmtlib";
     repo = "fmt";
     rev = version;
-    sha256 = "1ngb2fd7c2jnxi3x5kjgxmpixmyc737f77vibij43dl77ybiaihi";
+    sha256 = "1vr08a8q94j66gas7ddbpdbq72b2ikd0mkgd5zd3l63610n8qajs";
   };
 
+  patches = [
+    # Fix BC break breaking Kodi
+    # https://github.com/xbmc/xbmc/issues/17629
+    # https://github.com/fmtlib/fmt/issues/1620
+    (fetchpatch {
+      url = "https://github.com/fmtlib/fmt/commit/7d01859ef16e6b65bc023ad8bebfedecb088bf81.patch";
+      sha256 = "vdttRGgdltabeRAs4/z0BNtW2dLOhCxtXQFGVFKpEG0=";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gegl/4.0.nix b/pkgs/development/libraries/gegl/4.0.nix
index 858596597b1..4810390ac1b 100644
--- a/pkgs/development/libraries/gegl/4.0.nix
+++ b/pkgs/development/libraries/gegl/4.0.nix
@@ -46,8 +46,13 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    # Remove gegl:simple / backend-file test that times out frequently
-    ./patches/no-simple-backend-file-test.patch
+    # 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 = [
diff --git a/pkgs/development/libraries/gegl/patches/no-simple-backend-file-test.patch b/pkgs/development/libraries/gegl/patches/no-simple-backend-file-test.patch
deleted file mode 100644
index bf07572182b..00000000000
--- a/pkgs/development/libraries/gegl/patches/no-simple-backend-file-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/tests/simple/meson.build b/tests/simple/meson.build
-index 2c735d80a..ae4d50f2a 100644
---- a/tests/simple/meson.build
-+++ b/tests/simple/meson.build
-@@ -1,5 +1,4 @@
- testnames = [
--  'backend-file',
-   'buffer-cast',
-   'buffer-changes',
-   'buffer-extract',
diff --git a/pkgs/development/libraries/libpgf/default.nix b/pkgs/development/libraries/libpgf/default.nix
index f262a7da131..7710c208199 100644
--- a/pkgs/development/libraries/libpgf/default.nix
+++ b/pkgs/development/libraries/libpgf/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
 # configureFlags = optional static "--enable-static --disable-shared";
 
   meta = {
-    homepage = "http://www.libpgf.org/";
+    homepage = "https://www.libpgf.org/";
     description = "Progressive Graphics Format";
     license = stdenv.lib.licenses.lgpl21Plus;
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/libraries/libslirp/default.nix b/pkgs/development/libraries/libslirp/default.nix
index 27a4d6ceb64..ee31e22628c 100644
--- a/pkgs/development/libraries/libslirp/default.nix
+++ b/pkgs/development/libraries/libslirp/default.nix
@@ -8,20 +8,24 @@
 
 stdenv.mkDerivation rec {
   pname = "libslirp";
-  version = "4.2.0";
+  version = "4.3.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "slirp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qk513fgfh4hwb1ajjmvg9m1bl97m3n731ymxqsh1c3fj468a2am";
+    sha256 = "1hajbdwx20a48hp8kv6jqbjvnzjvcdqmbjfsymzy2xa80idqkfab";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [ glib ];
 
+  postPatch = ''
+    echo ${version} > .tarball-version
+  '';
+
   meta = with stdenv.lib; {
     description = "General purpose TCP-IP emulator";
     homepage = "https://gitlab.freedesktop.org/slirp/libslirp";
diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix
index 30d114122b6..1aaba1599c0 100644
--- a/pkgs/development/libraries/lirc/default.nix
+++ b/pkgs/development/libraries/lirc/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Allows to receive and send infrared signals";
-    homepage = "http://www.lirc.org/";
+    homepage = "https://www.lirc.org/";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/libraries/pcg-c/default.nix b/pkgs/development/libraries/pcg-c/default.nix
index 550842e9f9f..593794c9c4d 100644
--- a/pkgs/development/libraries/pcg-c/default.nix
+++ b/pkgs/development/libraries/pcg-c/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A family of better random number generators";
-    homepage = "http://www.pcg-random.org/";
+    homepage = "https://www.pcg-random.org/";
     license = stdenv.lib.licenses.asl20;
     longDescription = ''
       PCG is a family of simple fast space-efficient statistically good
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index f9026ec7b99..ee861c14ab4 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -114,10 +114,10 @@ in stdenvNoCC.mkDerivation {
     '') + ''
 
     # Setup symlinks for blas / lapack
-    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenvNoCC.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenvNoCC.hostPlatform.extensions.sharedLibrary}
+    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libmkl_rt${stdenvNoCC.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenvNoCC.hostPlatform.extensions.sharedLibrary}${stdenvNoCC.lib.optionalString stdenvNoCC.hostPlatform.isLinux ".3"}
   '';
 
   # fixDarwinDylibName fails for libmkl_cdft_core.dylib because the
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index c55a5cb7878..f6a40204587 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -178,10 +178,10 @@ EOF
     done
 
     # Setup symlinks for blas / lapack
-    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}
-    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}
+    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"}
+    ln -s $out/lib/libopenblas${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/liblapacke${stdenv.hostPlatform.extensions.sharedLibrary}${stdenv.lib.optionalString stdenv.hostPlatform.isLinux ".3"}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/node-packages/node-packages-v10.nix b/pkgs/development/node-packages/node-packages-v10.nix
index 9740c66c974..434cc707bab 100644
--- a/pkgs/development/node-packages/node-packages-v10.nix
+++ b/pkgs/development/node-packages/node-packages-v10.nix
@@ -22,67 +22,67 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.901.1" = {
+    "@angular-devkit/architect-0.901.3" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.901.1";
+      version = "0.901.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.1.tgz";
-        sha512 = "foWDAurMfBDYLAJxHpTFkJBub1c2A8+eWHbBjgqIHmT8xadnE7t8nSA9XDl+k/kIoWw/qFU+6IttPirudYc/vw==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.3.tgz";
+        sha512 = "CFjSj48nOJwejmFFtenIqSZWyxRe4fRQsg16l0R4sagW7YwMJSaW6Yl9hRHM8bviPRrTpGHnxeq1x506v1ARLw==";
       };
     };
-    "@angular-devkit/core-9.1.1" = {
+    "@angular-devkit/core-9.1.3" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "9.1.1";
+      version = "9.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.1.tgz";
-        sha512 = "57MNew2u1QwVb69jxZyhXgdW9kqcGyWyRy2ui/hWCkWLg7RumWtyypmdTs89FNExB4HqtXlQ2eO3JZxfs7QR3w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.3.tgz";
+        sha512 = "VRV96prPy0Kdlm6XmI7DITqSMSc1bINimnOhzQre3euDX5OQty+EUqaexHtMv/SPDZX1agP+buHr6viv9YEhzA==";
       };
     };
-    "@angular-devkit/schematics-9.1.1" = {
+    "@angular-devkit/schematics-9.1.3" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "9.1.1";
+      version = "9.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.1.tgz";
-        sha512 = "6wx2HcvafHvEjEa1tjDzW2hXrOiSE8ALqJUArb3+NoO1BDM42aGcqyPo0ODzKtDk12CgSsFXdNKRpQ5AmpSPtw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.3.tgz";
+        sha512 = "nNRoQPqoin5jzLKmTabIPLSqVw2Zjnk78XC4AhAM7rSisWMsZ6pw5+BNDITiKfq0LkSXfOs0DoJV/Vr9mLkn/A==";
       };
     };
-    "@antora/asciidoc-loader-2.2.0" = {
+    "@antora/asciidoc-loader-2.3.0" = {
       name = "_at_antora_slash_asciidoc-loader";
       packageName = "@antora/asciidoc-loader";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.2.0.tgz";
-        sha512 = "dwKXao6eqbAh8O7OS1ZUgVHmbfl38z7RzBCM6DbTb1VODk1HGIgp6gxauGmy5rBvjrJTtz7M1Dxs+BzBApeyMw==";
+        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.0.tgz";
+        sha512 = "mncSlmkk6rYH5SGplZtHjuieG3ve5bhm4x0f9WIFE+GhqajIogDjxTBNWNr9B2dVA4bMves7Sy+c5h+f9V3iVw==";
       };
     };
-    "@antora/content-aggregator-2.2.0" = {
+    "@antora/content-aggregator-2.3.0" = {
       name = "_at_antora_slash_content-aggregator";
       packageName = "@antora/content-aggregator";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.2.0.tgz";
-        sha512 = "Dd3jvjIty75G5X04lf6XFK8wKwKo1bfJfafsvwwJuApILASt0Nrv+Z3O+rfc4MhaswgZNqVBrEcSJW9BJxXPtw==";
+        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.0.tgz";
+        sha512 = "LbH65Hw5uk3QCX8sCsJGnIVapQbtkxgyaDAfxYJlXnBI4jjd92391k0vitFL7f+9dzEvSdzxUHJU/lPyi9eB6g==";
       };
     };
-    "@antora/content-classifier-2.2.0" = {
+    "@antora/content-classifier-2.3.0" = {
       name = "_at_antora_slash_content-classifier";
       packageName = "@antora/content-classifier";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.2.0.tgz";
-        sha512 = "cVoL7aR619FNFN3bKiiFhLinaFktQ06OmMG+QMJW0tNRaeI1ATYtrpUvwG5KVuciwDZFKp+GboRUoud0OGLfJQ==";
+        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.0.tgz";
+        sha512 = "x/GUrm62+zSA8uQYaPG1y8NDALSDeKKl+um0CrxV5nt8c6vEO80KODN4YEPqoC0tOq8zdT99J6ElYblpkxrW6Q==";
       };
     };
-    "@antora/document-converter-2.2.0" = {
+    "@antora/document-converter-2.3.0" = {
       name = "_at_antora_slash_document-converter";
       packageName = "@antora/document-converter";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.2.0.tgz";
-        sha512 = "Ka3moJL5HRoaHUz6U1s9M36WGJg8vUmlQziUpKsC96GbgWyiNXIvNwvQN9kdAW0AXR1CNpIcZ8sl7ygIaa7pLA==";
+        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.0.tgz";
+        sha512 = "RMvdqBIz+pXf5znuyVeR7GF8qw/zLfaRMmEzMzywYa+8Cappxy+pgs+BuAuH1TdAnsFzpPrIO211c2FE1OxXBg==";
       };
     };
     "@antora/expand-path-helper-1.0.0" = {
@@ -94,76 +94,76 @@ let
         sha512 = "hg3y6M3OvRTb7jtLAnwwloYDxafbyKYttcf16kGCXvP7Wqosh7c+Ag+ltaZ7VSebpzpphO/umb/BXdpU7rxapw==";
       };
     };
-    "@antora/navigation-builder-2.2.0" = {
+    "@antora/navigation-builder-2.3.0" = {
       name = "_at_antora_slash_navigation-builder";
       packageName = "@antora/navigation-builder";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.2.0.tgz";
-        sha512 = "r78NVNN/PbbSbXI5+NJ4d5G0RM1cklv++djPI0xIjFPK8R7GsuQagAaEpZS9o8UKcRlIyyGTeaT8dWKnFxZh2w==";
+        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.0.tgz";
+        sha512 = "bpdT50pUW8IbRHAwlwaRdMlqwdTCOGdh0novW2Z6uBi6KKKbl6K3BdbaVs/jwXalESWqkYHcyBpinMivsX4bBA==";
       };
     };
-    "@antora/page-composer-2.2.0" = {
+    "@antora/page-composer-2.3.0" = {
       name = "_at_antora_slash_page-composer";
       packageName = "@antora/page-composer";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.2.0.tgz";
-        sha512 = "JBRqWjJE8pUJG7AU6GMYWo2avBHLzxBisyfFq9FGH7Uf+Shv+0RYImFH0fDX0Et+83sfg2i3y39SfTYXKLsc3g==";
+        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.0.tgz";
+        sha512 = "ve4h3uColNuqGehSJ2qUw5dar1Ls3i+RBYh2HyVZZ84qjLoOjPGAALFYzRVJnYlEX6nAswNFhh5ll/hIuaxuHQ==";
       };
     };
-    "@antora/playbook-builder-2.2.0" = {
+    "@antora/playbook-builder-2.3.0" = {
       name = "_at_antora_slash_playbook-builder";
       packageName = "@antora/playbook-builder";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.2.0.tgz";
-        sha512 = "GIbkyCnwdTJVHYwSEG4d6Px2Uh/zBiwLXK7zGsaMY4/DmbYBKzNK4xpt7fHXvIw2IyH9GA1XRQ7+vpBSg8VP8w==";
+        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.0.tgz";
+        sha512 = "zuuTqY5dDXYhu4LfmFW3qzdFXSrXSo9NCDX9eBJ6MCXsuj64PqdOljzv4rWNy3HvmKOSCupfWCashJS0vuH2Dw==";
       };
     };
-    "@antora/redirect-producer-2.2.0" = {
+    "@antora/redirect-producer-2.3.0" = {
       name = "_at_antora_slash_redirect-producer";
       packageName = "@antora/redirect-producer";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.2.0.tgz";
-        sha512 = "ZkUe95Wj3TiFrbXA0sRDCv+0yD1HxI84/2pQj6cnMV01vrfj9HKeMdbBG1Sgf5bmaDDJ1nImlT0l2g6t+pBIJg==";
+        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.0.tgz";
+        sha512 = "/632VZlkpFIh5KlV3A9LqE4yGtYyQ+1vOb5A9yajYWsCnhqNfEMslMWuoLoQk4gzs3Ju+hz5MrAXp8sn1vbRvg==";
       };
     };
-    "@antora/site-mapper-2.2.0" = {
+    "@antora/site-mapper-2.3.0" = {
       name = "_at_antora_slash_site-mapper";
       packageName = "@antora/site-mapper";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.2.0.tgz";
-        sha512 = "318hg4n6SjisAA5e3uq02IdSeW6hQwCo+2TfQQQlCY/+DlFV0V2ML2bicwSrdfweJ42o5TxgSQAtTuOc1YPjgA==";
+        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.0.tgz";
+        sha512 = "XzIoYKJQXgOzsDeUlL/edVR9B9aaCYUHADvzYqDc1S5/czFQxpqIIgMfYCiYYc7pHk6nmj5rgx/6HfvDImv87w==";
       };
     };
-    "@antora/site-publisher-2.2.0" = {
+    "@antora/site-publisher-2.3.0" = {
       name = "_at_antora_slash_site-publisher";
       packageName = "@antora/site-publisher";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.2.0.tgz";
-        sha512 = "3pcGacS72sOKnm7Hnx328AUWGMEDsNHHQla6lwHL7gtWGtn/9tpt0M+MtgkxZnOLmoif8pt/JWPmlnv6td2xSw==";
+        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.0.tgz";
+        sha512 = "2qC0fDE70VKtyttPpRx9glPWL4M5x7HYVCs1K6+GmpuISmljO3c/09L+ExPsJiSVVFarnWmMu0w+76XqSRHlog==";
       };
     };
-    "@antora/ui-loader-2.2.0" = {
+    "@antora/ui-loader-2.3.0" = {
       name = "_at_antora_slash_ui-loader";
       packageName = "@antora/ui-loader";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.2.0.tgz";
-        sha512 = "3d6SqtknM3PiLRw2wLtcMVVfmyHtfNuWo8+ZBRmUrZs8HfhGteV8/s4vpiOJZmLYhW4KLFgIgG09lFdD5t78Ow==";
+        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.0.tgz";
+        sha512 = "EcBUwd4ImWI/BH0dZpH6CfDzBnAtQ2qUPChaeqVbmfCNpBvH6t09YYRVA713no21ypAF3AwBs3FGU1+vR6T/IQ==";
       };
     };
-    "@apollo/federation-0.14.0" = {
+    "@apollo/federation-0.14.1" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.14.0";
+      version = "0.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.14.0.tgz";
-        sha512 = "JNIWj8p9vd4c1kZFl70B1wUt2RwttSUHVef4UfTAyhN7PHX5D4J+IHTYurgOIC/yUqIURi7iVh8vAtudhpxtEA==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.14.1.tgz";
+        sha512 = "QuX2O3xO6mcTZdqttxHaMKWgq1v0nYRiDLe4k7DwAxVtb9nF8lsJDlup4Zicx3LBYhBCGQvumrYILuF/Amn6WQ==";
       };
     };
     "@apollo/protobufjs-1.0.3" = {
@@ -175,13 +175,13 @@ let
         sha512 = "gqeT810Ect9WIqsrgfUvr+ljSB5m1PyBae9HGdrRyQ3HjHjTcjVvxpsMYXlUk4rUHnrfUqyoGvLSy2yLlRGEOw==";
       };
     };
-    "@apollographql/apollo-tools-0.4.5" = {
+    "@apollographql/apollo-tools-0.4.7" = {
       name = "_at_apollographql_slash_apollo-tools";
       packageName = "@apollographql/apollo-tools";
-      version = "0.4.5";
+      version = "0.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.5.tgz";
-        sha512 = "KOZC4Y+JM4iQQ7P4CVC878Ee7ya0QoHApGHu4klwjwZkYyOdWIvbML7JfXOUb/AfCO4DFmJfHCjRdAX09Ga6sQ==";
+        url = "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.7.tgz";
+        sha512 = "6QjZz6aLq6QXHgJ1AmSg4C4cBmhF5z3g7LPsk4g+zJoWKxiFuSIbrTe12ETtn6wgPq//e5p2agbXYydIjqs7gw==";
       };
     };
     "@apollographql/graphql-language-service-interface-2.0.2" = {
@@ -283,15 +283,6 @@ let
         sha512 = "aOHQPhsEyaB6p2n+AK981+onHoc+Ork9rcAQVSUJR33wUkGiWRpu6/C685knRyIZVsKeSdG5Q4xMiYeFUhuLzA==";
       };
     };
-    "@babel/generator-7.9.4" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.9.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz";
-        sha512 = "rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==";
-      };
-    };
     "@babel/generator-7.9.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
@@ -1210,15 +1201,6 @@ let
         sha512 = "SAtyEjmA7KiEoL2eAOAUM6M9arQJGWxJKK0S9x0WyPOosHS420RXoxPhn57u/8orRnK8Kxm0nHQQNTX203cP1Q==";
       };
     };
-    "@babel/types-7.9.0" = {
-      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==";
-      };
-    };
     "@babel/types-7.9.5" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
@@ -1453,13 +1435,13 @@ let
         sha512 = "tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==";
       };
     };
-    "@iarna/toml-2.2.3" = {
+    "@iarna/toml-2.2.5" = {
       name = "_at_iarna_slash_toml";
       packageName = "@iarna/toml";
-      version = "2.2.3";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.3.tgz";
-        sha512 = "FmuxfCuolpLl0AnQ2NHSzoUKWEJDFl63qXjzdoWBVyFCXzMGm1spBzk7LeHNoVCiWCF7mRVms9e6jEV9+MoPbg==";
+        url = "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz";
+        sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==";
       };
     };
     "@ionic/cli-framework-3.0.6" = {
@@ -1579,22 +1561,22 @@ let
         sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
       };
     };
-    "@jest/transform-25.3.0" = {
+    "@jest/transform-25.4.0" = {
       name = "_at_jest_slash_transform";
       packageName = "@jest/transform";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/transform/-/transform-25.3.0.tgz";
-        sha512 = "W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg==";
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-25.4.0.tgz";
+        sha512 = "t1w2S6V1sk++1HHsxboWxPEuSpN8pxEvNrZN+Ud/knkROWtf8LeUmz73A4ezE8476a5AM00IZr9a8FO9x1+j3g==";
       };
     };
-    "@jest/types-25.3.0" = {
+    "@jest/types-25.4.0" = {
       name = "_at_jest_slash_types";
       packageName = "@jest/types";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz";
-        sha512 = "UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==";
+        url = "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz";
+        sha512 = "XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw==";
       };
     };
     "@kbrandwijk/swagger-to-graphql-2.4.3" = {
@@ -2299,13 +2281,13 @@ let
         sha512 = "6+iaCMh/JXJaB2QWikqvGE9//wLEVYYwZd5sud8aLoLKog1Q75naZh2vlGVtg5Mq/NqpqGQvdIjJb3Bm+64AUQ==";
       };
     };
-    "@oclif/config-1.14.0" = {
+    "@oclif/config-1.15.1" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
-      version = "1.14.0";
+      version = "1.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/config/-/config-1.14.0.tgz";
-        sha512 = "KsOP/mx9lzTah+EtGqLUXN3PDL0J3zb9/dTneFyiUK2K6T7vFEGhV6OasmqTh4uMZHGYTGrNPV8x/Yw6qZNL6A==";
+        url = "https://registry.npmjs.org/@oclif/config/-/config-1.15.1.tgz";
+        sha512 = "GdyHpEZuWlfU8GSaZoiywtfVBsPcfYn1KuSLT1JTfvZGpPG6vShcGr24YZ3HG2jXUFlIuAqDcYlTzOrqOdTPNQ==";
       };
     };
     "@oclif/errors-1.2.2" = {
@@ -2398,13 +2380,13 @@ let
         sha512 = "eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==";
       };
     };
-    "@octokit/endpoint-6.0.0" = {
+    "@octokit/endpoint-6.0.1" = {
       name = "_at_octokit_slash_endpoint";
       packageName = "@octokit/endpoint";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.0.tgz";
-        sha512 = "3nx+MEYoZeD0uJ+7F/gvELLvQJzLXhep2Az0bBSXagbApDvDW0LWwpnAIY/hb0Jwe17A0fJdz0O12dPh05cj7A==";
+        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.1.tgz";
+        sha512 = "pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==";
       };
     };
     "@octokit/plugin-enterprise-rest-3.6.2" = {
@@ -2443,13 +2425,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/request-5.4.0" = {
+    "@octokit/request-5.4.2" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
-      version = "5.4.0";
+      version = "5.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.0.tgz";
-        sha512 = "uAJO6GI8z8VHBqtY7VTL9iFy1Y+UTp5ShpI97tY5z0qBfYKE9rZCRsCm23VmF00x+IoNJ7a0nuVITs/+wS9/mg==";
+        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.2.tgz";
+        sha512 = "zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==";
       };
     };
     "@octokit/request-error-1.2.1" = {
@@ -2479,13 +2461,13 @@ let
         sha512 = "gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==";
       };
     };
-    "@octokit/types-2.10.0" = {
+    "@octokit/types-2.12.1" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "2.10.0";
+      version = "2.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-2.10.0.tgz";
-        sha512 = "0/NN22MgQvNNgMjTwzWUzcIfFfks3faqiP1D1oQQz49KYeOWc+KkRG9ASbAPurrAnOaDiqnnuDYzhNT9cq4e8Q==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-2.12.1.tgz";
+        sha512 = "LRLR1tjbcCfAmUElvTmMvLEzstpx6Xt/aQVTg2xvd+kHA2Ekp1eWl5t+gU7bcwjXHYEAzh4hH4WH+kS3vh+wRw==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -2677,22 +2659,22 @@ let
         sha512 = "MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==";
       };
     };
-    "@schematics/angular-9.1.1" = {
+    "@schematics/angular-9.1.3" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "9.1.1";
+      version = "9.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.1.tgz";
-        sha512 = "V0DcDNgHQ2YR+PGZI6+pf/mUNNxt5SusShkZ1PbwIMk/HUQpzEGkLjm3v1Jw9eIZKiuDx615GNU1xDzQ/KyNRQ==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.3.tgz";
+        sha512 = "3vxrPyvcIWvyWgbx/fpeQvMThXlmcnHTXVn2dpTcE2BzstAYdG17W3qouhvmlqd6m28orxkKKiZaJYMNTtnV/A==";
       };
     };
-    "@schematics/update-0.901.1" = {
+    "@schematics/update-0.901.3" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.901.1";
+      version = "0.901.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.901.1.tgz";
-        sha512 = "g5B8hjXKCbUNLKCkWQxc5r2D9lOQXRTLZJNIqva+l/ck0AML5MpelxkqQId9ZGLfQqfFk/XjdSHRWgcmUs1WnA==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.901.3.tgz";
+        sha512 = "kwfc9LMMi6ryN2oiat9vTqGMK1jKwI1c45Nm1xala35nsbQSQ12qeL3MrVmnSCeI14+cinFUbp8mWI9/3M+/Lg==";
       };
     };
     "@serverless/cli-1.4.0" = {
@@ -2713,13 +2695,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-2.29.3" = {
+    "@serverless/components-2.30.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "2.29.3";
+      version = "2.30.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-2.29.3.tgz";
-        sha512 = "Qrucf/k4QStcVLIvumGvf3oJlotxrcIswO0LnTu6WosPQHrVXy6uMTd2QF5raNMi4UTnOA86ZM//XXYkgGbDnw==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-2.30.1.tgz";
+        sha512 = "blqZP6aRg9oj1A30ip2hndcvA1g+J8g8vFbUHtAfs5mp/r4KTD63tNagscSNKTSbc6csM3Z9w6yjW4KSarl8LQ==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -2776,13 +2758,13 @@ let
         sha512 = "29JV8XpJPTUSWgDwxhvZZ9fi9/5jCn1x5IeT+xEiEkpuXZU79wXlSfMfc8XtptOsDouZnOhBpKEZrItGp67CFw==";
       };
     };
-    "@serverless/platform-client-china-1.0.5" = {
+    "@serverless/platform-client-china-1.0.6" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.5.tgz";
-        sha512 = "EhiVkC3qh8uZQjcIXbN7n1eVCKiyvriJjghbOe4cigkNhT/dHPTFM23aK3h/rJowfP9P5+R4xfKsaCWRjA8Y3Q==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.6.tgz";
+        sha512 = "565LsU74rDQQJAN6y8dTJpDNktqGGs2EvafXXEX021F+YlN3fIJebXRASN2Mgj4XWmzY7DbqC3v2wXF9j3LsGg==";
       };
     };
     "@serverless/platform-sdk-2.3.0" = {
@@ -2803,13 +2785,13 @@ let
         sha512 = "hcMiX523rkp6kHeKnM1x6/dXEY+d1UFSr901yVKeeCgpFy4u33UI9vlKaPweAZCF6Ahzqywf01IsFTuBVadCrQ==";
       };
     };
-    "@serverless/utils-china-0.1.3" = {
+    "@serverless/utils-china-0.1.6" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "0.1.3";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.3.tgz";
-        sha512 = "2KtmNFNGvWC/TAOkcnp8oDchAlLh/anpnxLifBb2xjbP50m3tOnoea5eU1QRENPOtCrg0iqCpfmfJ3eiCkaf0A==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.6.tgz";
+        sha512 = "BPaKkRJ47yKTIqRkwF62V5Z/SGdNDmNtinu3fK4988CG1gXBVG2yb3Cq34A98B4BAwZdKzxKCV2n9q4dl1zolw==";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -2830,13 +2812,13 @@ let
         sha512 = "ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==";
       };
     };
-    "@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.0.tgz";
-        sha512 = "lXKXfypKo644k4Da4yXkPCrwcvn6SlUW2X2zFbuflKHNjf0w9htru01bo26uMhleMXsDmnZ12eJLdrAZa9MANg==";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz";
+        sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
       };
     };
     "@slack/client-3.16.0" = {
@@ -2875,22 +2857,13 @@ let
         sha512 = "ecbylK5Ol2ySb/WbfPj0s0GuLQR+KWKFzUgVaoNHaSoN6371qRWwf2uVr+hPUP4gXqCai21Ug/RDArfOhlPwrQ==";
       };
     };
-    "@snyk/cli-interface-2.3.1" = {
-      name = "_at_snyk_slash_cli-interface";
-      packageName = "@snyk/cli-interface";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.1.tgz";
-        sha512 = "JZvsmhDXSyjv1dkc12lPI3tNTNYlIaOiIQMYFg2RgqF3QmWjTyBUgRZcF7LoKyufHtS4dIudM6k1aHBpSaDrhw==";
-      };
-    };
-    "@snyk/cli-interface-2.3.2" = {
+    "@snyk/cli-interface-2.4.0" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.3.2";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.2.tgz";
-        sha512 = "jmZyxVHqzYU1GfdnWCGdd68WY/lAzpPVyqalHazPj4tFJehrSfEFc82RMTYAMgXEJuvFRFIwhsvXh3sWUhIQmg==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.4.0.tgz";
+        sha512 = "FH3RpJV83SFmNWR7FXS4O4sAF7oZZxAWmN6vwhADGJNAdgJYW4Acc6677ZSMnRpIHiFBHrsxso3Au+NQuu73xA==";
       };
     };
     "@snyk/cocoapods-lockfile-parser-3.1.0" = {
@@ -2938,6 +2911,15 @@ let
         sha512 = "nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==";
       };
     };
+    "@snyk/java-call-graph-builder-1.3.4" = {
+      name = "_at_snyk_slash_java-call-graph-builder";
+      packageName = "@snyk/java-call-graph-builder";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.3.4.tgz";
+        sha512 = "3KXA5hTqvn6EZBEyMhA5zj0QCzu1WBPVBeUbQ4sNfftbVgfy/OFc9I/NPi39ALA2+tFYl1aKVIy1ECRea4Mc1w==";
+      };
+    };
     "@snyk/ruby-semver-2.1.0" = {
       name = "_at_snyk_slash_ruby-semver";
       packageName = "@snyk/ruby-semver";
@@ -3226,13 +3208,13 @@ let
         sha512 = "XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==";
       };
     };
-    "@tootallnate/once-1.0.0" = {
+    "@tootallnate/once-1.1.2" = {
       name = "_at_tootallnate_slash_once";
       packageName = "@tootallnate/once";
-      version = "1.0.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tootallnate/once/-/once-1.0.0.tgz";
-        sha512 = "KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA==";
+        url = "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz";
+        sha512 = "RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==";
       };
     };
     "@types/accepts-1.3.5" = {
@@ -3586,13 +3568,13 @@ let
         sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
       };
     };
-    "@types/lodash-4.14.149" = {
+    "@types/lodash-4.14.150" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.149";
+      version = "4.14.150";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz";
-        sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.150.tgz";
+        sha512 = "kMNLM5JBcasgYscD9x/Gvr6lTAv2NVgsKtet/hm93qMyf/D1pt+7jeEZklKJKxMVmXjxbRVQQGfqDSfipYCO6w==";
       };
     };
     "@types/long-4.0.1" = {
@@ -3631,31 +3613,31 @@ let
         sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
       };
     };
-    "@types/node-10.17.19" = {
+    "@types/node-10.17.21" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.19";
+      version = "10.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.19.tgz";
-        sha512 = "46/xThm3zvvc9t9/7M3AaLEqtOpqlYYYcCZbpYVAQHG20+oMZBkae/VMrn4BTi6AJ8cpack0mEXhGiKmDNbLrQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.21.tgz";
+        sha512 = "PQKsydPxYxF1DsAFWmunaxd3sOi3iMt6Zmx/tgaagHYmwJ/9cRH91hQkeJZaUGWbvn0K5HlSVEXkn5U/llWPpQ==";
       };
     };
-    "@types/node-12.12.35" = {
+    "@types/node-12.12.37" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.12.35";
+      version = "12.12.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.12.35.tgz";
-        sha512 = "ASYsaKecA7TUsDrqIGPNk3JeEox0z/0XR/WsJJ8BIX/9+SkMSImQXKWfU/yBrSyc7ZSE/NPqLu36Nur0miCFfQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.12.37.tgz";
+        sha512 = "4mXKoDptrXAwZErQHrLzpe0FN/0Wmf5JRniSVIdwUrtDf9wnmEV1teCNLBo/TwuXhkK/bVegoEn/wmb+x0AuPg==";
       };
     };
-    "@types/node-13.11.1" = {
+    "@types/node-13.13.2" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.11.1";
+      version = "13.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.11.1.tgz";
-        sha512 = "eWQGP3qtxwL8FGneRrC5DwrJLGN4/dH1clNTuLfN81HCrxVtxRjygDTUoZJ5ASlDEeo0ppYFQjQIlXhtXpOn6g==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz";
+        sha512 = "LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==";
       };
     };
     "@types/node-6.14.10" = {
@@ -3667,15 +3649,6 @@ let
         sha512 = "pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==";
       };
     };
-    "@types/node-fetch-2.5.5" = {
-      name = "_at_types_slash_node-fetch";
-      packageName = "@types/node-fetch";
-      version = "2.5.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.5.tgz";
-        sha512 = "IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==";
-      };
-    };
     "@types/node-fetch-2.5.6" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
@@ -3802,13 +3775,13 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.43.0" = {
+    "@types/vscode-1.44.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.43.0";
+      version = "1.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.43.0.tgz";
-        sha512 = "kIaR9qzd80rJOxePKpCB/mdy00mz8Apt2QA5Y6rdrKFn13QNFNeP3Hzmsf37Bwh/3cS7QjtAeGSK7wSqAU0sYQ==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.44.0.tgz";
+        sha512 = "WJZtZlinE3meRdH+I7wTsIhpz/GLhqEQwmPGeh4s1irWLwMzCeTV8WZ+pgPTwrDXoafVUWwo1LiZ9HJVHFlJSQ==";
       };
     };
     "@types/ws-6.0.4" = {
@@ -3865,13 +3838,13 @@ let
         sha512 = "te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-2.28.0" = {
+    "@typescript-eslint/eslint-plugin-2.29.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "2.28.0";
+      version = "2.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.28.0.tgz";
-        sha512 = "w0Ugcq2iatloEabQP56BRWJowliXUP5Wv6f9fKzjJmDW81hOTBxRoJ4LoEOxRpz9gcY51Libytd2ba3yLmSOfg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.29.0.tgz";
+        sha512 = "X/YAY7azKirENm4QRpT7OVmzok02cSkqeIcLmdz6gXUQG4Hk0Fi9oBAynSAyNXeGdMRuZvjBa0c1Lu0dn/u6VA==";
       };
     };
     "@typescript-eslint/experimental-utils-1.13.0" = {
@@ -3883,13 +3856,13 @@ let
         sha512 = "zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==";
       };
     };
-    "@typescript-eslint/experimental-utils-2.28.0" = {
+    "@typescript-eslint/experimental-utils-2.29.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "2.28.0";
+      version = "2.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.28.0.tgz";
-        sha512 = "4SL9OWjvFbHumM/Zh/ZeEjUFxrYKtdCi7At4GyKTbQlrj1HcphIDXlje4Uu4cY+qzszR5NdVin4CCm6AXCjd6w==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.29.0.tgz";
+        sha512 = "H/6VJr6eWYstyqjWXBP2Nn1hQJyvJoFdDtsHxGiD+lEP7piGnGpb/ZQd+z1ZSB1F7dN+WsxUDh8+S4LwI+f3jw==";
       };
     };
     "@typescript-eslint/parser-1.13.0" = {
@@ -3901,13 +3874,13 @@ let
         sha512 = "ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==";
       };
     };
-    "@typescript-eslint/parser-2.28.0" = {
+    "@typescript-eslint/parser-2.29.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "2.28.0";
+      version = "2.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.28.0.tgz";
-        sha512 = "RqPybRDquui9d+K86lL7iPqH6Dfp9461oyqvlXMNtap+PyqYbkY5dB7LawQjDzot99fqzvS0ZLZdfe+1Bt3Jgw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.29.0.tgz";
+        sha512 = "H78M+jcu5Tf6m/5N8iiFblUUv+HJDguMSdFfzwa6vSg9lKR8Mk9BsgeSjO8l2EshKnJKcbv0e8IDDOvSNjl0EA==";
       };
     };
     "@typescript-eslint/typescript-estree-1.13.0" = {
@@ -3919,13 +3892,13 @@ let
         sha512 = "b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==";
       };
     };
-    "@typescript-eslint/typescript-estree-2.28.0" = {
+    "@typescript-eslint/typescript-estree-2.29.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "2.28.0";
+      version = "2.29.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.28.0.tgz";
-        sha512 = "HDr8MP9wfwkiuqzRVkuM3BeDrOC4cKbO5a6BymZBHUt5y/2pL0BXD6I/C/ceq2IZoHWhcASk+5/zo+dwgu9V8Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.29.0.tgz";
+        sha512 = "3YGbtnWy4az16Egy5Fj5CckkVlpIh0MADtAQza+jiMADRSKkjdpzZp/5WuvwK/Qib3Z0HtzrDFeWanS99dNhnA==";
       };
     };
     "@vue/cli-shared-utils-4.3.1" = {
@@ -4729,13 +4702,13 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-1.20.0" = {
+    "addons-linter-1.23.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "1.20.0";
+      version = "1.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-1.20.0.tgz";
-        sha512 = "EIyJnIkvXhBKgOzVFR873uGa4ny07odIl8i8qWxHAuVJWM/ZQtLouAbndA+cVRDbD66sK6HsO1oWN6WkdCr/uA==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-1.23.0.tgz";
+        sha512 = "4ozo5E+KnsU9h94J496WQs6NYSnofxtw5/Sy63PmeB5FJ3KWERx1S9D8A+ixMAIMgaSiexHpp5alp9yjE0t4gg==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -4927,22 +4900,22 @@ let
         sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
       };
     };
-    "ajv-6.10.2" = {
+    "ajv-6.12.0" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.10.2";
+      version = "6.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz";
-        sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
+        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
       };
     };
-    "ajv-6.12.0" = {
+    "ajv-6.12.2" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.0";
+      version = "6.12.2";
       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.2.tgz";
+        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
       };
     };
     "ajv-6.5.3" = {
@@ -5422,13 +5395,13 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.27.0" = {
+    "apollo-2.27.3" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.27.0";
+      version = "2.27.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.27.0.tgz";
-        sha512 = "yA4/DihmCuz+8k1zsHCtuEslVtAY1oc9mCv7YLUr2B7TVLgbEzNNzNciMbSa5SIczt0S5I+tr6pBhMYPgsLN3A==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.27.3.tgz";
+        sha512 = "9GWIdwah0o4XiNTGcoc4JIflBYf+3+JflKeqS3YfJ8uOzUPGSaFIt0Z42p43TJ9ALvJqnlcYy/cBCizihne3Xg==";
       };
     };
     "apollo-cache-1.3.4" = {
@@ -5485,13 +5458,13 @@ let
         sha512 = "sanUIqXWyyDpxY3fYOVU+Hsxwxdj5fmn3Zcy6CcMGnWmh9o7tautQAuod2a63wrDs1jcNQcFq3EKIpeB+2xECw==";
       };
     };
-    "apollo-codegen-core-0.36.6" = {
+    "apollo-codegen-core-0.36.8" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.36.6";
+      version = "0.36.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.36.6.tgz";
-        sha512 = "wVQkjYrbJa3Ut98pP9z/DnPPdtYaXLmOe83TOM1/krX3MlhTD17VWx1pkLht+1Tuy7hEZErxA5d2bwaynSNfCg==";
+        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" = {
@@ -5503,13 +5476,13 @@ let
         sha512 = "XgKE19B0Q74PBLVqHP/77NcCFrcvrN9wi3CcotH+FV8BeHTjvpHlilTsQMmd2STPt19cCvY2Qtz0EOeLXTUQ2Q==";
       };
     };
-    "apollo-codegen-flow-0.34.6" = {
+    "apollo-codegen-flow-0.34.8" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.34.6";
+      version = "0.34.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.34.6.tgz";
-        sha512 = "jgoa9dlWNec+qD02hsWaLYtd2p9A97IbEcWX7aLaE5fifrK1rIA7lY6TLwlXc663YxBcgZzGaCfKtatqndfg9A==";
+        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" = {
@@ -5530,13 +5503,13 @@ let
         sha512 = "NbnMOfUXXovlTGRj4mIZGXB9HvidQhwKfAmdYHox5peHPkjjsqEzxGCIuWCSnubWiCF2uHZnQoIkg4sXWf0KLw==";
       };
     };
-    "apollo-codegen-scala-0.35.6" = {
+    "apollo-codegen-scala-0.35.8" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.35.6";
+      version = "0.35.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.35.6.tgz";
-        sha512 = "H5NAMdCb5cMB/YGUqCSDspPLRxMFklc9m2CBVpdo90cjIjb8YEJDJfqpLt1D6X5fX2xPhNYptCyeDkY1qXC9XQ==";
+        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" = {
@@ -5548,13 +5521,13 @@ let
         sha512 = "L9Y4StbXw0t/nuF+miz0ybSt/io6tsLc063Yeh1A8GCvhFFQyXE/yK0Rf3nO1Bl5Z9UZ5o8Aae9kK4GSWYIGNQ==";
       };
     };
-    "apollo-codegen-swift-0.36.6" = {
+    "apollo-codegen-swift-0.36.8" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.36.6";
+      version = "0.36.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.36.6.tgz";
-        sha512 = "/F96GbAjBcLE8pKFv8+k4FyAaegPHl0vxF/2abxQEBfolwyLk5JufEBC2fSkS9Gf8PLQlDcEIxUFyqmBQzMbpA==";
+        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.36.8.tgz";
+        sha512 = "PTZtRGfSFi8UkE8T92W2/zMFZ8GI59KQdotVWqUphaprhFnzHnig3YZf8L05eBgkbQuDPDckjBoRnICporG5Cw==";
       };
     };
     "apollo-codegen-typescript-0.20.0" = {
@@ -5566,13 +5539,13 @@ let
         sha512 = "mzlIJXz+5WPwzeALqRHHR9aPPEf6IlhSrjCawpUHmFU1NK9hgwbguYCEYZv9mKkYBUUgDY+9cGFK1cafJX70AQ==";
       };
     };
-    "apollo-codegen-typescript-0.36.6" = {
+    "apollo-codegen-typescript-0.36.8" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.36.6";
+      version = "0.36.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.36.6.tgz";
-        sha512 = "Y6UZ+HP+RDp0zk3h+rCJ/7eHQKUea3fPB6YplZ80dAzcwYYfsx0WprtdSYnUgPT8Rimeg+WDZ4jzQpZ/udPiGQ==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.36.8.tgz";
+        sha512 = "IL0UaqXuByNUjbn3oxEpBidnCIKwiNmXYpwj+EqKnnQhOVwiV7wyXYRhBFp3LoUQVW5UKZ+qulYujlCvYvaj0w==";
       };
     };
     "apollo-codegen-typescript-legacy-0.20.0" = {
@@ -5611,31 +5584,31 @@ let
         sha512 = "SGrIkUR7Q/VjU8YG98xcvo340C4DaNUhg/TXOtGsMlfiJDzHwVau/Bv6zifAzBafp2lj0XND6Daj5kyT/eSI/w==";
       };
     };
-    "apollo-env-0.6.2" = {
+    "apollo-env-0.6.4" = {
       name = "apollo-env";
       packageName = "apollo-env";
-      version = "0.6.2";
+      version = "0.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.2.tgz";
-        sha512 = "Vb/doL1ZbzkNDJCQ6kYGOrphRx63rMERYo3MT2pzm2pNEdm6AK60InMgJaeh3RLK3cjGllOXFAgP8IY+m+TaEg==";
+        url = "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.4.tgz";
+        sha512 = "8tGDMFv3sZLd76b/ZAo8GbdWU5Qt3VEUWSB+FLN41p/hVShZw0XIo2s/i8pVCTAhaWiEiD0Cr+d/zi0/h5UTxA==";
       };
     };
-    "apollo-graphql-0.4.1" = {
+    "apollo-graphql-0.4.3" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.4.1";
+      version = "0.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.1.tgz";
-        sha512 = "dz2wtGeCqUDAKAj4KXLKLZiFY791aoXduul3KcLo8/6SwqWlsuZiPe0oB8mENHZZc/EchCpTMTJZX2ZENsOt2A==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.3.tgz";
+        sha512 = "eAl8w6TeuY0Q3x7TVqBjt4JObA34vUyctuDn2lOmkdIqlu1EKxNAnTlRtXkjQM89qUt0rK0teU8No0a2lMNGuw==";
       };
     };
-    "apollo-language-server-1.21.1" = {
+    "apollo-language-server-1.21.3" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.21.1";
+      version = "1.21.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.21.1.tgz";
-        sha512 = "Yu5nw+0lGWNY9PmgogzXVRvnCNluGImeNmg4jQkXQlBR2TsQ9P3YSwujDIJ5cWWKjyi/0+3PtRYvIna58xZ/fg==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.21.3.tgz";
+        sha512 = "PSPiOwR7Zd0alnZ0zeuUs7kEnWwV3jWIU01bsoy8eaF4Bi2fJD7AHnEyUOiu7V3V7xdJtnsJNTjyZy5MC0+Ohg==";
       };
     };
     "apollo-link-1.2.14" = {
@@ -6736,15 +6709,6 @@ let
         sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
       };
     };
-    "async-3.1.1" = {
-      name = "async";
-      packageName = "async";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.1.1.tgz";
-        sha512 = "X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==";
-      };
-    };
     "async-3.2.0" = {
       name = "async";
       packageName = "async";
@@ -6997,13 +6961,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.657.0" = {
+    "aws-sdk-2.661.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.657.0";
+      version = "2.661.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.657.0.tgz";
-        sha512 = "CGxnYEFkZwIflH0cnylMtyNNmjkQIK5gG9L0MRGha4ANSogBrCXfWcjSWP1ziDK0FhRBAyJVdMX0il/kW4ya+A==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.661.0.tgz";
+        sha512 = "dfGtbRQQUmcpj6WGVhj7q2PADCvDhLf+/aRGPXcMrm0cnHavkmHPVaSvrw2lJJJ5N9MsBKoUyacrVcIQkfNsgw==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -7141,13 +7105,13 @@ let
         sha512 = "m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==";
       };
     };
-    "babel-jest-25.3.0" = {
+    "babel-jest-25.4.0" = {
       name = "babel-jest";
       packageName = "babel-jest";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-25.3.0.tgz";
-        sha512 = "qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg==";
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-25.4.0.tgz";
+        sha512 = "p+epx4K0ypmHuCnd8BapfyOwWwosNCYhedetQey1awddtfmEX0MmdxctGl956uwUmjwXR5VSS5xJcGX9DvdIog==";
       };
     };
     "babel-loader-8.1.0" = {
@@ -7159,13 +7123,13 @@ let
         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-istanbul-6.0.0" = {
@@ -7177,13 +7141,13 @@ let
         sha512 = "AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==";
       };
     };
-    "babel-plugin-jest-hoist-25.2.6" = {
+    "babel-plugin-jest-hoist-25.4.0" = {
       name = "babel-plugin-jest-hoist";
       packageName = "babel-plugin-jest-hoist";
-      version = "25.2.6";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz";
-        sha512 = "qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw==";
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.4.0.tgz";
+        sha512 = "M3a10JCtTyKevb0MjuH6tU+cP/NVQZ82QPADqI1RQYY1OphztsCeIeQmTsHmF/NS6m0E51Zl4QNsI3odXSQF5w==";
       };
     };
     "babel-plugin-minify-builtins-0.5.0" = {
@@ -7402,15 +7366,6 @@ let
         sha1 = "be241ca81404030678b748717322b89d0c8fe280";
       };
     };
-    "babel-polyfill-6.26.0" = {
-      name = "babel-polyfill";
-      packageName = "babel-polyfill";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz";
-        sha1 = "379937abc67d7895970adc621f284cd966cf2153";
-      };
-    };
     "babel-preset-current-node-syntax-0.1.2" = {
       name = "babel-preset-current-node-syntax";
       packageName = "babel-preset-current-node-syntax";
@@ -7420,13 +7375,13 @@ let
         sha512 = "u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==";
       };
     };
-    "babel-preset-jest-25.3.0" = {
+    "babel-preset-jest-25.4.0" = {
       name = "babel-preset-jest";
       packageName = "babel-preset-jest";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz";
-        sha512 = "tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw==";
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.4.0.tgz";
+        sha512 = "PwFiEWflHdu3JCeTr0Pb9NcHHE34qWFnPQRVPvqQITx4CsDCzs6o05923I10XvLvn9nNsRHuiVgB72wG/90ZHQ==";
       };
     };
     "babel-preset-minify-0.5.1" = {
@@ -8671,13 +8626,13 @@ let
         sha512 = "yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==";
       };
     };
-    "browserslist-4.11.1" = {
+    "browserslist-4.12.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.11.1";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz";
-        sha512 = "DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz";
+        sha512 = "UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==";
       };
     };
     "bser-2.1.1" = {
@@ -9400,15 +9355,6 @@ let
         sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
       };
     };
-    "camelcase-keys-6.1.2" = {
-      name = "camelcase-keys";
-      packageName = "camelcase-keys";
-      version = "6.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.1.2.tgz";
-        sha512 = "QfFrU0CIw2oltVvpndW32kuJ/9YOJwUnmWrjlXt1nnJZHCaS9i6bfOpg9R4Lw8aZjStkJWM+jc0cdXjWBgVJSw==";
-      };
-    };
     "camelcase-keys-6.2.2" = {
       name = "camelcase-keys";
       packageName = "camelcase-keys";
@@ -9445,13 +9391,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001042" = {
+    "caniuse-lite-1.0.30001046" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001042";
+      version = "1.0.30001046";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz";
-        sha512 = "igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz";
+        sha512 = "CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -9967,13 +9913,13 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.12.0" = {
+    "chrome-launcher-0.13.1" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.12.0";
+      version = "0.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.12.0.tgz";
-        sha512 = "rBUP4tvWToiileDi3UR0SbWKoUoDCYTRmVND2sdoBL1xANBgVz8V9h1yQluj3MEQaBJg0fRw7hW82uOPrJus7A==";
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.1.tgz";
+        sha512 = "q8UiCNAknw6kCUvCVBTAEw1BwT0vaxabCrSjN3B/NWohp12YBD9+DalymYElSoKRD4KpVSu4CCl0us4v/J81Sg==";
       };
     };
     "chrome-net-3.3.3" = {
@@ -10264,13 +10210,13 @@ let
         sha1 = "7e673ee0dd39a611a486476e53f3c6b3941cb582";
       };
     };
-    "cli-progress-3.7.0" = {
+    "cli-progress-3.8.0" = {
       name = "cli-progress";
       packageName = "cli-progress";
-      version = "3.7.0";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-progress/-/cli-progress-3.7.0.tgz";
-        sha512 = "xo2HeQ3vNyAO2oYF5xfrk5YM6jzaDNEbeJRLAQir6QlH54g4f6AXW+fLyJ/f12gcTaCbJznsOdQcr/yusp/Kjg==";
+        url = "https://registry.npmjs.org/cli-progress/-/cli-progress-3.8.0.tgz";
+        sha512 = "3e+m7ecKbVTF2yo186vrrt/5217ZwE64z61kMwhSFmgrF3qZiTUuV9Fdh2RyzSkhLRfsqFf721KiUDEAJlP5pA==";
       };
     };
     "cli-spinner-0.2.10" = {
@@ -11164,15 +11110,6 @@ let
         sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
       };
     };
-    "commander-3.0.2" = {
-      name = "commander";
-      packageName = "commander";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
-        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
-      };
-    };
     "commander-4.1.0" = {
       name = "commander";
       packageName = "commander";
@@ -13145,13 +13082,13 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.8.24" = {
+    "dayjs-1.8.25" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.8.24";
+      version = "1.8.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.24.tgz";
-        sha512 = "bImQZbBv86zcOWOq6fLg7r4aqMx8fScdmykA7cSh+gH1Yh8AM0Dbw0gHYrsOrza6oBBnkK+/OaR+UAa9UsMrDw==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.25.tgz";
+        sha512 = "Pk36juDfQQGDCgr0Lqd1kw15w3OS6xt21JaLPE3lCfsEf8KrERGwDNwvK1tRjrjqFC0uZBJncT4smZQ4F+uV5g==";
       };
     };
     "de-indent-1.0.2" = {
@@ -14387,13 +14324,13 @@ let
         sha1 = "57ddacb47324ae5f58d2cc0da886db4ce9eeb718";
       };
     };
-    "dispensary-0.49.0" = {
+    "dispensary-0.51.2" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.49.0";
+      version = "0.51.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.49.0.tgz";
-        sha512 = "szH0vDORmGWEfwQgIqrhmrMpSGU2yXL3z7oe0NGx4sCbmnJdXXr5SQvRccPNCPrRuRPn2zPIITvwD9Lf+pcOew==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.51.2.tgz";
+        sha512 = "liUDx/g1xFEBFoOL6308Vr0aYAZlGAyXGcOvuXVa/6qVBZT4QZrv4pVNeb5QOeD5C/Flta+A+qTnLkLnhgs40g==";
       };
     };
     "diveSync-0.3.0" = {
@@ -15233,13 +15170,13 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "electron-to-chromium-1.3.411" = {
+    "electron-to-chromium-1.3.415" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.411";
+      version = "1.3.415";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.411.tgz";
-        sha512 = "TDDfkuSYEbknN0kRPSAD8WzB452pJ6EmIxGbI9yQHkDxUNbD6Educ10DxyA9r/DuLL4z255IO1OZIw+eFK6XUw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.415.tgz";
+        sha512 = "GbtYqKffx3sU8G0HxwXuJFfs58Q7+iwLa5rBwaULwET6jWW8IAQSrVnu7vEfiUIcMVfbYyFg7cw3zdm+EbBJmw==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -15293,7 +15230,7 @@ let
       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";
       };
     };
@@ -15522,13 +15459,13 @@ let
         sha512 = "+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==";
       };
     };
-    "engine.io-3.4.0" = {
+    "engine.io-3.4.1" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "3.4.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz";
-        sha512 = "XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-3.4.1.tgz";
+        sha512 = "8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -15549,13 +15486,13 @@ let
         sha512 = "y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==";
       };
     };
-    "engine.io-client-3.4.0" = {
+    "engine.io-client-3.4.1" = {
       name = "engine.io-client";
       packageName = "engine.io-client";
-      version = "3.4.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz";
-        sha512 = "a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==";
+        url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.1.tgz";
+        sha512 = "RJNmA+A9Js+8Aoq815xpGAsgWH1VoSYM//2VgIiu9lNOaHFfLpTjH4tOzktBpjIs5lvOfiNY1dwf+NuU6D38Mw==";
       };
     };
     "engine.io-parser-1.0.6" = {
@@ -16233,15 +16170,6 @@ let
         sha512 = "qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==";
       };
     };
-    "espree-6.1.2" = {
-      name = "espree";
-      packageName = "espree";
-      version = "6.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz";
-        sha512 = "2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==";
-      };
-    };
     "espree-6.2.1" = {
       name = "espree";
       packageName = "espree";
@@ -16926,6 +16854,15 @@ let
         sha512 = "t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==";
       };
     };
+    "express-session-1.17.1" = {
+      name = "express-session";
+      packageName = "express-session";
+      version = "1.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz";
+        sha512 = "UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==";
+      };
+    };
     "express-urlrewrite-1.2.0" = {
       name = "express-urlrewrite";
       packageName = "express-urlrewrite";
@@ -17331,13 +17268,13 @@ let
         sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
-    "fast-text-encoding-1.0.1" = {
+    "fast-text-encoding-1.0.2" = {
       name = "fast-text-encoding";
       packageName = "fast-text-encoding";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.1.tgz";
-        sha512 = "x4FEgaz3zNRtJfLFqJmHWxkMDDvXVtaznj2V9jiP8ACUJrUgist4bP9FmDL2Vew2Y9mEQI/tG4GqabaitYp9CQ==";
+        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.2.tgz";
+        sha512 = "5rQdinSsycpzvAoHga2EDn+LRX1d5xLFsuNG0Kg61JrAT/tASXcLL0nf/33v+sAxlQcfYmWbTURa1mmAf55jGw==";
       };
     };
     "fast-url-parser-1.1.3" = {
@@ -17907,13 +17844,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-1.3.0" = {
+    "firefox-profile-1.3.1" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.0.tgz";
-        sha512 = "3d7JPnFC3GrwGW8wonAqy2E4YCI7A8MO7yVDkqS09uQ3tLvMLCY3Ytt4ntvVXvyzjVMRmrLW9W/CubnnzrdLCA==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.1.tgz";
+        sha512 = "8q7DnwVIXvuJuBm1shr5ivRh0Ih2ytWwOIMwHInDSlVyrjQVXy7Ik0frItDdWb/P5CIpQFcMk9fPsUwNqi2lyQ==";
       };
     };
     "first-chunk-stream-1.0.0" = {
@@ -18780,6 +18717,15 @@ let
         sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
       };
     };
+    "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==";
+      };
+    };
     "fstream-0.1.31" = {
       name = "fstream";
       packageName = "fstream";
@@ -19275,13 +19221,13 @@ let
         sha1 = "c57d1145eec16465ab9bfbdf575262b1691624d6";
       };
     };
-    "git-parse-1.0.3" = {
+    "git-parse-1.0.4" = {
       name = "git-parse";
       packageName = "git-parse";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-parse/-/git-parse-1.0.3.tgz";
-        sha512 = "LlGDePBQ9Lr/jsL3ULrnV8SQL8sk3cdScyc+vAk6jVLkHBOxdIj3JosNWemH2o9pNnGtcqukl+ym1Nl6k5jw0Q==";
+        url = "https://registry.npmjs.org/git-parse/-/git-parse-1.0.4.tgz";
+        sha512 = "NSC71SqG6jN0XYPbib8t/mgguVLddw+xvkkLv2EsCFvHfsZjO+ZqMcGoGHHMqfhZllCDDAkOwZESkZEmICj9ZA==";
       };
     };
     "git-raw-commits-2.0.0" = {
@@ -19632,7 +19578,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";
       };
     };
@@ -20374,13 +20320,13 @@ let
         sha1 = "0054e1e744502e27c04c187c3ecc505dd54bbb4f";
       };
     };
-    "gulp-vinyl-zip-2.1.3" = {
+    "gulp-vinyl-zip-2.2.0" = {
       name = "gulp-vinyl-zip";
       packageName = "gulp-vinyl-zip";
-      version = "2.1.3";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.3.tgz";
-        sha512 = "wOHNPddyZ45il4wNz3Bk9ChpEq5FK/P76SSkqAMCLVZSOVtLBiDIVXDbYWDlfZpoYEjZQl+28I+Uzmmr6pSnBQ==";
+        url = "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.2.0.tgz";
+        sha512 = "7tKXptewHdKnOV0HGIyB/5+dvfmwmHq+hnolAQ64zz/pPomUXJcFPeYCkatRmOztkfZOn+14zoIFS2G39PkzIg==";
       };
     };
     "gulplog-1.0.0" = {
@@ -20392,13 +20338,13 @@ let
         sha1 = "e28c4d45d05ecbbed818363ce8f9c5926229ffe5";
       };
     };
-    "gunzip-maybe-1.4.1" = {
+    "gunzip-maybe-1.4.2" = {
       name = "gunzip-maybe";
       packageName = "gunzip-maybe";
-      version = "1.4.1";
+      version = "1.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.1.tgz";
-        sha512 = "qtutIKMthNJJgeHQS7kZ9FqDq59/Wn0G2HYCRNjpup7yKfVI6/eqwpmroyZGFoCYaG+sW6psNVb4zoLADHpp2g==";
+        url = "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz";
+        sha512 = "4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==";
       };
     };
     "handle-thing-2.0.1" = {
@@ -20410,15 +20356,6 @@ let
         sha512 = "9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==";
       };
     };
-    "handlebars-4.5.3" = {
-      name = "handlebars";
-      packageName = "handlebars";
-      version = "4.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz";
-        sha512 = "3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==";
-      };
-    };
     "handlebars-4.7.6" = {
       name = "handlebars";
       packageName = "handlebars";
@@ -23012,13 +22949,13 @@ let
         sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     };
-    "is-function-1.0.1" = {
+    "is-function-1.0.2" = {
       name = "is-function";
       packageName = "is-function";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz";
-        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz";
+        sha512 = "lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==";
       };
     };
     "is-glob-2.0.1" = {
@@ -23939,13 +23876,13 @@ let
         sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
       };
     };
-    "isomorphic-git-0.70.4" = {
+    "isomorphic-git-0.78.5" = {
       name = "isomorphic-git";
       packageName = "isomorphic-git";
-      version = "0.70.4";
+      version = "0.78.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-0.70.4.tgz";
-        sha512 = "Nk/iD4iEL35zY1B4l2PgPOJpVgTQzVH9W0oRkKc3vDbMjcfvs7nle4Y8NRghXIG27Z6KQVSTi/om6lTbzpfl+A==";
+        url = "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-0.78.5.tgz";
+        sha512 = "LrF5t9x7RdFeg84NsYpZo9qF1MZeb56LpBm6Jv47qMjnWMv0Il/3wPTA8I/lUYywgVbvF/e7xypHauj5auKW3w==";
       };
     };
     "isomorphic-textencoder-1.0.1" = {
@@ -24065,13 +24002,13 @@ let
         sha1 = "dc5ebed10d04a5e0eaf49ef0009bec473d1a6b31";
       };
     };
-    "jaeger-client-3.17.2" = {
+    "jaeger-client-3.18.0" = {
       name = "jaeger-client";
       packageName = "jaeger-client";
-      version = "3.17.2";
+      version = "3.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.17.2.tgz";
-        sha512 = "19YloSidmKbrXHgecLWod8eXo7rm2ieUnsfg0ripTFGRCW5v2OWE96Gte4/tOQG/8N+T39VoLU2nMBdjbdMUJg==";
+        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.18.0.tgz";
+        sha512 = "xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA==";
       };
     };
     "java-properties-1.0.2" = {
@@ -24110,13 +24047,13 @@ let
         sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
       };
     };
-    "jest-haste-map-25.3.0" = {
+    "jest-haste-map-25.4.0" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.3.0.tgz";
-        sha512 = "LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A==";
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.4.0.tgz";
+        sha512 = "5EoCe1gXfGC7jmXbKzqxESrgRcaO3SzWXGCnvp9BcT0CFMyrB1Q6LIsjl9RmvmJGQgW297TCfrdgiy574Rl9HQ==";
       };
     };
     "jest-regex-util-25.2.6" = {
@@ -24137,22 +24074,22 @@ let
         sha512 = "RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==";
       };
     };
-    "jest-util-25.3.0" = {
+    "jest-util-25.4.0" = {
       name = "jest-util";
       packageName = "jest-util";
-      version = "25.3.0";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-util/-/jest-util-25.3.0.tgz";
-        sha512 = "dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA==";
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-25.4.0.tgz";
+        sha512 = "WSZD59sBtAUjLv1hMeKbNZXmMcrLRWcYqpO8Dz8b4CeCTZpfNQw2q9uwrYAD+BbJoLJlu4ezVPwtAmM/9/SlZA==";
       };
     };
-    "jest-worker-25.2.6" = {
+    "jest-worker-25.4.0" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "25.2.6";
+      version = "25.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz";
-        sha512 = "FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz";
+        sha512 = "ghAs/1FtfYpMmYQ0AHqxV62XPvKdUDIBBApMZfly+E9JEmYh2K45G0R5dWxx986RN12pRCxsViwQVtGl+N4whw==";
       };
     };
     "jetpack-id-1.0.0" = {
@@ -24254,13 +24191,13 @@ let
         sha1 = "d6be2e4c377494e2378b1cae2920a91d1182d8c4";
       };
     };
-    "jquery.terminal-2.15.2" = {
+    "jquery.terminal-2.15.4" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.15.2";
+      version = "2.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.15.2.tgz";
-        sha512 = "/G5L/laZLLO0tEQ+a94mLnvDXB5+PbC9IuZB+ikbw4E7W3GQkRpa0I15Z3xA+WbOaVZj+hEtPcKyyQLcKdjULQ==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.15.4.tgz";
+        sha512 = "7XSLLjc2Il+1wtJQYQWkir8A5WnTMFEkwb1fGx3mASxQ+lp0Yu4Ua3iQTSKZGdYR3FINor9ToK107lJHEWOeYA==";
       };
     };
     "js-base64-2.5.2" = {
@@ -24731,6 +24668,15 @@ let
         sha512 = "ma5F/Bs47dZfJfDZ0Dt37eIbzVBVKZIDqsZSqdCCAPNHxKn+s3+CfMA6ahVVlf8Y1hyIjXkVLFU7yv4XxRfihA==";
       };
     };
+    "jsonata-1.8.3" = {
+      name = "jsonata";
+      packageName = "jsonata";
+      version = "1.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonata/-/jsonata-1.8.3.tgz";
+        sha512 = "r6ztI6ohbpRo77AxBm6vMs3aHZi2L2PaakW7TCPwSkeGcuAZ/SxXGLWH2Npwqq5+YBM/fg/g0EXg/pI9HvXQ8Q==";
+      };
+    };
     "jsonc-parser-1.0.3" = {
       name = "jsonc-parser";
       packageName = "jsonc-parser";
@@ -24929,13 +24875,13 @@ let
         sha1 = "b88f3a7b2e67a2a048152982c7a3756d9c4828f0";
       };
     };
-    "jszip-3.3.0" = {
+    "jszip-3.4.0" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.3.0.tgz";
-        sha512 = "EJ9k766htB1ZWnsV5ZMDkKLgA+201r/ouFF8R2OigVjVdcm2rurcBrrdXaeqBJbqnUVMko512PYmlncBKE1Huw==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz";
+        sha512 = "gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==";
       };
     };
     "jszip-git://github.com/anmonteiro/jszip#patch-1" = {
@@ -27703,13 +27649,13 @@ let
         sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
       };
     };
-    "make-dir-3.0.2" = {
+    "make-dir-3.1.0" = {
       name = "make-dir";
       packageName = "make-dir";
-      version = "3.0.2";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz";
-        sha512 = "rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==";
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
       };
     };
     "make-error-1.3.6" = {
@@ -28144,15 +28090,6 @@ let
         sha1 = "c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e";
       };
     };
-    "matcher-2.0.0" = {
-      name = "matcher";
-      packageName = "matcher";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/matcher/-/matcher-2.0.0.tgz";
-        sha512 = "nlmfSlgHBFx36j/Pl/KQPbIaqE8Zf0TqmSMjsuddHDg6PMSVgmyW9HpkLs0o0M1n2GIZ/S2BZBLIww/xjhiGng==";
-      };
-    };
     "matcher-2.1.0" = {
       name = "matcher";
       packageName = "matcher";
@@ -28261,13 +28198,13 @@ let
         sha1 = "c04891883c28c83602e1d06b05a11037e359b4c8";
       };
     };
-    "mdn-browser-compat-data-1.0.3" = {
+    "mdn-browser-compat-data-1.0.15" = {
       name = "mdn-browser-compat-data";
       packageName = "mdn-browser-compat-data";
-      version = "1.0.3";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.3.tgz";
-        sha512 = "5n7c20IVrUiuOPSuhbkd5xoJPSzEEGsoMrmrdEtPHIw6gRPzonydcsguAmqGfSBd4d2DRoDQg533sijLUpeJLg==";
+        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.15.tgz";
+        sha512 = "0jxT4ZqqCzJJfktX9d4NKgfRENy60kFzhVNV0mXNHvlnw8KrMe2cKOlEKs/Bz+odlgO0rRZAxU0OKiptqVhAXg==";
       };
     };
     "mdn-data-2.0.4" = {
@@ -28639,13 +28576,13 @@ let
         sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
       };
     };
-    "metals-languageclient-0.1.23" = {
+    "metals-languageclient-0.2.1" = {
       name = "metals-languageclient";
       packageName = "metals-languageclient";
-      version = "0.1.23";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.1.23.tgz";
-        sha512 = "Gi/qomdchfurnRIiEH8RjLbYZ926zJDE/acOx8xCtAx7Ai9vA49ZyJnh/BP0BNqe8VXVvPHmadmqdM+4lC7hLQ==";
+        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.2.1.tgz";
+        sha512 = "8iVF+wKKZVN7r1/9JSv4QCJO2lRyqQvxs6+kmTviKVj/pYsH0qBR8vo7ne+7MkKrvyz8lnZCX29siv6sOWf3Qw==";
       };
     };
     "metalsmith-2.3.0" = {
@@ -28846,6 +28783,15 @@ let
         sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
       };
     };
+    "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.0.14" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -29179,13 +29125,13 @@ let
         sha1 = "f98ee7b5fffd3f4dadc5733827db0aa57f861880";
       };
     };
-    "mirror-folder-3.0.0" = {
+    "mirror-folder-3.0.1" = {
       name = "mirror-folder";
       packageName = "mirror-folder";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mirror-folder/-/mirror-folder-3.0.0.tgz";
-        sha512 = "fh6wDXcSpFoKY7ZPHnEv1+xjLOS7tlkEpTvl4Y6ZsT0HNjIaYg6ktq9ng8MPthFruunS8D/3GnPeaWhoQD3X9g==";
+        url = "https://registry.npmjs.org/mirror-folder/-/mirror-folder-3.0.1.tgz";
+        sha512 = "AWYvbeZbHljMuu+49wgCdLGVOekNh/vpIsIMkFZYcRAJCY9vH7+vHM/aEIY3mrbbrBkHyBDnbmoOWUTbHN4A8g==";
       };
     };
     "mississippi-3.0.0" = {
@@ -29260,6 +29206,15 @@ 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";
@@ -29935,13 +29890,13 @@ let
         sha512 = "TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==";
       };
     };
-    "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==";
       };
     };
     "nan-2.3.5" = {
@@ -30263,13 +30218,13 @@ let
         sha1 = "06f58360c4c3b955bd467ddc85ae4511a3907a4c";
       };
     };
-    "neat-input-1.11.0" = {
+    "neat-input-1.11.1" = {
       name = "neat-input";
       packageName = "neat-input";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/neat-input/-/neat-input-1.11.0.tgz";
-        sha512 = "B7VCdE3tMC8RnKGGHatjwcR0TsHB7SiDHmYXyZ7m9YzQRdOAOF9oSwWO/WP4DLqdCma22EXWuxzEGFD80JjBeA==";
+        url = "https://registry.npmjs.org/neat-input/-/neat-input-1.11.1.tgz";
+        sha512 = "fWo4KrgeLB2TPQ4d8BF1DexvOJYvYuj0IGtSL4Ri3UuT59lJnYiu90xMCMfciySXLVHdWhXq/10A/I/pBynh0g==";
       };
     };
     "neat-log-2.4.0" = {
@@ -30561,13 +30516,13 @@ let
         sha512 = "iEOqDAOFl6uN5jZGRj39Jdo8qALzf2HPXtpFso8+BMaDylDrUMYMwhFbfYGgxdnMlsRnxYTwv68kaXEpsHIapg==";
       };
     };
-    "node-abi-2.15.0" = {
+    "node-abi-2.16.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.15.0";
+      version = "2.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz";
-        sha512 = "FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.16.0.tgz";
+        sha512 = "+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA==";
       };
     };
     "node-addon-api-1.7.1" = {
@@ -31657,7 +31612,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";
       };
     };
@@ -32192,15 +32147,6 @@ let
         sha1 = "707375e59ab9f73025899727679b20328171c9aa";
       };
     };
-    "opentracing-0.13.0" = {
-      name = "opentracing";
-      packageName = "opentracing";
-      version = "0.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/opentracing/-/opentracing-0.13.0.tgz";
-        sha1 = "6a341442f09d7d866bc11ed03de1e3828e3d6aab";
-      };
-    };
     "opentracing-0.14.4" = {
       name = "opentracing";
       packageName = "opentracing";
@@ -32372,6 +32318,15 @@ let
         sha512 = "fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==";
       };
     };
+    "ora-4.0.4" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz";
+        sha512 = "77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==";
+      };
+    };
     "orchestrator-0.3.8" = {
       name = "orchestrator";
       packageName = "orchestrator";
@@ -32462,13 +32417,13 @@ let
         sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
       };
     };
-    "os-locale-4.0.0" = {
+    "os-locale-5.0.0" = {
       name = "os-locale";
       packageName = "os-locale";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-4.0.0.tgz";
-        sha512 = "HsSR1+2l6as4Wp2SGZxqLnuFHxVvh1Ir9pvZxyujsC13egZVe7P0YeBLN0ijQzM/twrO5To3ia3jzBXAvpMTEA==";
+        url = "https://registry.npmjs.org/os-locale/-/os-locale-5.0.0.tgz";
+        sha512 = "tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA==";
       };
     };
     "os-name-3.1.0" = {
@@ -34001,13 +33956,13 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-5.15.0" = {
+    "pino-6.0.0" = {
       name = "pino";
       packageName = "pino";
-      version = "5.15.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-5.15.0.tgz";
-        sha512 = "7+FXMTA3H3sNP5+2miY2K9JKnAAW5GKuhHfNWsukFCsPprGQY3ctqpwbV74wAHW3Nl93cEEQ1G82MgOLM8P7TQ==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.0.0.tgz";
+        sha512 = "3RfX2L76o7v230FP1fZ3Fo/WX7Su+P1Ld+pvBm2j+MyUjtA/KqDYxMkzBqzcX3R00zbC7Gf/HqIzyuu3tgvi9Q==";
       };
     };
     "pino-std-serializers-2.4.2" = {
@@ -34326,15 +34281,6 @@ let
         sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     };
-    "postcss-7.0.26" = {
-      name = "postcss";
-      packageName = "postcss";
-      version = "7.0.26";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz";
-        sha512 = "IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==";
-      };
-    };
     "postcss-7.0.27" = {
       name = "postcss";
       packageName = "postcss";
@@ -34839,13 +34785,13 @@ let
         sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==";
       };
     };
-    "posthtml-0.12.2" = {
+    "posthtml-0.12.3" = {
       name = "posthtml";
       packageName = "posthtml";
-      version = "0.12.2";
+      version = "0.12.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.2.tgz";
-        sha512 = "vDMikGrmr2Ce4ralyBwfoTymA9Ycv2QSeaV+U9CdF/kHstsGSBVsTZ3Jt/BdACFuqCNyaICMdJI/rvGEreL7pA==";
+        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz";
+        sha512 = "Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==";
       };
     };
     "posthtml-parser-0.4.2" = {
@@ -34938,13 +34884,13 @@ let
         sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==";
       };
     };
-    "prettier-2.0.4" = {
+    "prettier-2.0.5" = {
       name = "prettier";
       packageName = "prettier";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz";
-        sha512 = "SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz";
+        sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -35424,13 +35370,13 @@ let
         sha1 = "bc826e34c3af4697e8d0af7a669e4d612aedcd17";
       };
     };
-    "protobufjs-6.8.9" = {
+    "protobufjs-6.9.0" = {
       name = "protobufjs";
       packageName = "protobufjs";
-      version = "6.8.9";
+      version = "6.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.9.tgz";
-        sha512 = "j2JlRdUeL/f4Z6x4aU4gj9I2LECglC+5qR2TrWb193Tla1qfdaNQTZ8I27Pt7K0Ajmvjjpft7O3KWTGciz4gpw==";
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.9.0.tgz";
+        sha512 = "LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg==";
       };
     };
     "protochain-1.0.5" = {
@@ -36567,13 +36513,13 @@ let
         sha512 = "F9wwNePtXrzZenAB3ax0Y8TSKGvuB7Qw16J30hspEUTbfUM+H827XyN3rlpwhVmtm5wuZtbKIHjOnwDn7MUxWQ==";
       };
     };
-    "quick-format-unescaped-3.0.3" = {
+    "quick-format-unescaped-4.0.1" = {
       name = "quick-format-unescaped";
       packageName = "quick-format-unescaped";
-      version = "3.0.3";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz";
-        sha512 = "dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ==";
+        url = "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz";
+        sha512 = "RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==";
       };
     };
     "quick-lru-1.1.0" = {
@@ -37260,6 +37206,15 @@ let
         sha512 = "XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==";
       };
     };
+    "recast-0.19.0" = {
+      name = "recast";
+      packageName = "recast";
+      version = "0.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/recast/-/recast-0.19.0.tgz";
+        sha512 = "HymYANYaUFpKoAkOZ2od16SB7A/BwCZbvYIs9Rc8K+wNThQctiCJ0AjLkPbo9eWdy3w5Eemk6I4MeEYbH12PBg==";
+      };
+    };
     "rechoir-0.6.2" = {
       name = "rechoir";
       packageName = "rechoir";
@@ -37386,15 +37341,6 @@ 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";
@@ -37404,15 +37350,6 @@ let
         sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.13.3" = {
-      name = "regenerator-runtime";
-      packageName = "regenerator-runtime";
-      version = "0.13.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz";
-        sha512 = "naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==";
-      };
-    };
     "regenerator-runtime-0.13.5" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -38088,13 +38025,13 @@ let
         sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
       };
     };
-    "resolve-1.16.0" = {
+    "resolve-1.17.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.16.0";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.16.0.tgz";
-        sha512 = "LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
     "resolve-1.7.1" = {
@@ -38583,13 +38520,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.6.1" = {
+    "rollup-2.7.2" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.6.1";
+      version = "2.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.6.1.tgz";
-        sha512 = "1RhFDRJeg027YjBO6+JxmVWkEZY0ASztHhoEUEWxOwkh4mjO58TFD6Uo7T7Y3FbmDpRTfKhM5NVxJyimCn0Elg==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.7.2.tgz";
+        sha512 = "SdtTZVMMVSPe7SNv4exUyPXARe5v/p3TeeG3LRA5WabLPJt4Usi3wVrvVlyAUTG40JJmqS6zbIHt2vWTss2prw==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -39006,13 +38943,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-formatter-0.4.4" = {
+    "sass-formatter-0.4.5" = {
       name = "sass-formatter";
       packageName = "sass-formatter";
-      version = "0.4.4";
+      version = "0.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.4.tgz";
-        sha512 = "pI/2olF5F3AMkAXbn71nJK7yAsWfRYLlyp7Suhiy4hzuNga05XaUzLO74lplCpvS8GVeUdFgef+8lU5+cHr60g==";
+        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.5.tgz";
+        sha512 = "hBDkbtTE020JwUaGKo5q+ELNXXji1kyajVMt3YLRYD1PAwUQYR5aAdfAUAcb88AmYgJpQRQrsqZj+YGmUCdgCw==";
       };
     };
     "sass-lookup-3.0.0" = {
@@ -39087,13 +39024,13 @@ let
         sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
       };
     };
-    "schema-utils-2.6.5" = {
+    "schema-utils-2.6.6" = {
       name = "schema-utils";
       packageName = "schema-utils";
-      version = "2.6.5";
+      version = "2.6.6";
       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.6.6.tgz";
+        sha512 = "wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==";
       };
     };
     "scoped-regex-1.0.0" = {
@@ -39330,15 +39267,6 @@ let
         sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
       };
     };
-    "semver-7.1.1" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz";
-        sha512 = "WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==";
-      };
-    };
     "semver-7.1.3" = {
       name = "semver";
       packageName = "semver";
@@ -39987,13 +39915,13 @@ let
         sha1 = "4e421f485ac7b13b08077a4476934d52c5ba3bb3";
       };
     };
-    "simple-peer-9.6.2" = {
+    "simple-peer-9.7.0" = {
       name = "simple-peer";
       packageName = "simple-peer";
-      version = "9.6.2";
+      version = "9.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.6.2.tgz";
-        sha512 = "EOKoImCaqtNvXIntxT1CBBK/3pVi7tMAoJ3shdyd9qk3zLm3QPiRLb/sPC1G2xvKJkJc5fkQjCXqRZ0AknwTig==";
+        url = "https://registry.npmjs.org/simple-peer/-/simple-peer-9.7.0.tgz";
+        sha512 = "lZL/H/Znx7kai1kTrbxntVfbstGTnPF+w+hvnq2euBXoBg8m32mgEOpPmH9hS7ZOx0CMXcpgth/nNjZKp7aeow==";
       };
     };
     "simple-sha1-2.1.2" = {
@@ -40329,6 +40257,15 @@ let
         sha512 = "9NjxHVMd1U1LFw66Lya4LXgrsFUiuRiL4opxfTFo0LmMNzUoU5Bk/p0zDdg3FE5Wg61r4fP2D8w+QTl6M8CGiw==";
       };
     };
+    "snyk-config-3.0.0" = {
+      name = "snyk-config";
+      packageName = "snyk-config";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-config/-/snyk-config-3.0.0.tgz";
+        sha512 = "sXjd7gUqPTmgkhtLowFkFU5J4xyS7tDIRUbHmpW/dvTjgmiH0ujobJzSdaim4W6pbiIf4snkGJsvHM3/wmdR5w==";
+      };
+    };
     "snyk-docker-plugin-2.6.1" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
@@ -40374,22 +40311,22 @@ let
         sha512 = "A+CCyBSa4IKok5uEhqT+hV/35RO6APFNLqk9DRRHg7xW2/j//nPX8wTSZUPF8QeRNEk/sX+6df7M1y6PBHGSHA==";
       };
     };
-    "snyk-mvn-plugin-2.9.0" = {
+    "snyk-mvn-plugin-2.10.0" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.9.0";
+      version = "2.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.9.0.tgz";
-        sha512 = "FBl78wCHNm0P/QOlipvOxzN2LrXlS6NBN0zXWYZ09P0hG65rmA3gKTg0QsHUjIBh1Pg9bw5aG4r/AHle6a6g6w==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.10.0.tgz";
+        sha512 = "npslocHJXUbdFxehMPQ8w4oX6bB6J6vHTWNRDF7u2+pIhVumQe1QOvZGjwh3up+vOCoKiEprO7gdt7vC8im1Vg==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.17.0" = {
+    "snyk-nodejs-lockfile-parser-1.18.0" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.17.0";
+      version = "1.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.17.0.tgz";
-        sha512 = "i4GAYFj9TJLOQ8F+FbIJuJWdGymi8w/XcrEX0FzXk7DpYUCY3mWibyKhw8RasfYBx5vLwUzEvRMaQuc2EwlyfA==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.18.0.tgz";
+        sha512 = "QGb6HBtnqefbVtrDyUqA3vXGo2DZJAlDxrsgIpKxFalhxmxmWQE3Fxx44V3aRq9H8iZ1eXb7s/drTsa/s9qGJQ==";
       };
     };
     "snyk-nuget-plugin-1.16.0" = {
@@ -40743,13 +40680,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-0.7.7" = {
+    "sonic-boom-1.0.1" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "0.7.7";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz";
-        sha512 = "Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.0.1.tgz";
+        sha512 = "o9tx+bonVEXSaPtptyXQXpP8l6UV9Bi3im2geZskvWw2a/o/hrbWI7EBbbv+rOx6Hubnzun9GgH4WfbgEA3MFQ==";
       };
     };
     "sorcery-0.10.0" = {
@@ -40914,6 +40851,15 @@ let
         sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
       };
     };
+    "source-map-support-0.5.18" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.18.tgz";
+        sha512 = "9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ==";
+      };
+    };
     "source-map-url-0.4.0" = {
       name = "source-map-url";
       packageName = "source-map-url";
@@ -41022,13 +40968,13 @@ let
         sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
       };
     };
-    "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" = {
@@ -42075,13 +42021,13 @@ let
         sha512 = "3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==";
       };
     };
-    "streamroller-2.2.3" = {
+    "streamroller-2.2.4" = {
       name = "streamroller";
       packageName = "streamroller";
-      version = "2.2.3";
+      version = "2.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamroller/-/streamroller-2.2.3.tgz";
-        sha512 = "AegmvQsscTRhHVO46PhCDerjIpxi7E+d2GxgUDu+nzw/HuLnUdxHWr6WQ+mVn/4iJgMKKFFdiUwFcFRDvcjCtw==";
+        url = "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz";
+        sha512 = "OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==";
       };
     };
     "streamsearch-0.1.2" = {
@@ -42822,13 +42768,13 @@ let
         sha512 = "XiyPqLdiHJ3CMphADCJg/JVQYcj3JfO8NomlLubSdGYgppfzE+g/7Fyusza/Kr7lC919BdwbfIqFxK8VO7+l4w==";
       };
     };
-    "suf-regex-0.0.14" = {
+    "suf-regex-0.0.17" = {
       name = "suf-regex";
       packageName = "suf-regex";
-      version = "0.0.14";
+      version = "0.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.14.tgz";
-        sha512 = "+WE5PZTfD6lVNCNsyBInJIAbok8LpqgOhvCbSViZeQ/JTxdxq7Lw+tSJXGM+jrIp81jj9GCMYvkl00JAkn2CtA==";
+        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.17.tgz";
+        sha512 = "/TIMx0G1iXCGHm5XbqHTV86tkdETO7OUOB8UAWHc04M2mMQnWAIZeO6M9GuSibRVM8ewRcHAV3fOFY2z1XtWaQ==";
       };
     };
     "sugarss-1.0.1" = {
@@ -43209,13 +43155,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.23.3" = {
+    "systeminformation-4.23.5" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.23.3";
+      version = "4.23.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.23.3.tgz";
-        sha512 = "TIGmv7O1vVw00ldkj8ckHJr667l/lbLxvYB5IrJZ7pxzKXt7RmCduvzHbFM6k2Owif/dGd7oEmRkaQJEH9ewng==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.23.5.tgz";
+        sha512 = "Zxd1wxN8KigQsDhZupVNAyHnkl+ombejuLpNhJ+LNezMxTLn7nBx9HNAIWUJnhAnSS0ZElQLQ1muqgnwbhgOHg==";
       };
     };
     "syswide-cas-5.3.0" = {
@@ -43552,6 +43498,15 @@ let
         sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
       };
     };
+    "temp-dir-2.0.0" = {
+      name = "temp-dir";
+      packageName = "temp-dir";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz";
+        sha512 = "aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==";
+      };
+    };
     "temp-write-3.4.0" = {
       name = "temp-write";
       packageName = "temp-write";
@@ -44749,13 +44704,13 @@ let
         sha512 = "uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==";
       };
     };
-    "ts-node-8.8.2" = {
+    "ts-node-8.9.0" = {
       name = "ts-node";
       packageName = "ts-node";
-      version = "8.8.2";
+      version = "8.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.8.2.tgz";
-        sha512 = "duVj6BpSpUpD/oM4MfhO98ozgkp3Gt9qIp3jGxwU2DFvl/3IRaEAvbLa8G60uS7C77457e/m5TMowjedeRxI1Q==";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.9.0.tgz";
+        sha512 = "rwkXfOs9zmoHrV8xE++dmNd6ZIS+nmHHCxcV53ekGJrxFLMbp+pizpPS07ARvhwneCIECPppOwbZHvw9sQtU4w==";
       };
     };
     "ts-process-promises-1.0.2" = {
@@ -44767,6 +44722,15 @@ let
         sha512 = "6qWWz2HdFbD2uAfgS5t65Dd6HQKYjfra+YXQzKzxIG+RKTpoeDi+x+TW85SEF3cWUI2UecrOXJobvD+04MiTZg==";
       };
     };
+    "tslib-1.11.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz";
+        sha512 = "BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==";
+      };
+    };
     "tslib-1.11.1" = {
       name = "tslib";
       packageName = "tslib";
@@ -45379,13 +45343,13 @@ let
         sha512 = "4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==";
       };
     };
-    "unbzip2-stream-1.4.1" = {
+    "unbzip2-stream-1.4.2" = {
       name = "unbzip2-stream";
       packageName = "unbzip2-stream";
-      version = "1.4.1";
+      version = "1.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.1.tgz";
-        sha512 = "sgDYfSDPMsA4Hr2/w7vOlrJBlwzmyakk1+hW8ObLvxSp0LA36LcL2XItGvOT3OSblohSdevMuT8FQjLsqyy4sA==";
+        url = "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz";
+        sha512 = "pZMVAofMrrHX6Ik39hCk470kulCbmZ2SWfQLPmTWqfJV/oUm0gn1CblvHdUu4+54Je6Jq34x8kY6XjTy6dMkOg==";
       };
     };
     "unc-path-regex-0.1.2" = {
@@ -46486,15 +46450,6 @@ let
         sha1 = "3c2236476c4d32c5ff3c47002add7c13b9a82a53";
       };
     };
-    "util.promisify-1.0.0" = {
-      name = "util.promisify";
-      packageName = "util.promisify";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz";
-        sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==";
-      };
-    };
     "util.promisify-1.0.1" = {
       name = "util.promisify";
       packageName = "util.promisify";
@@ -47332,6 +47287,15 @@ let
         sha512 = "JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==";
       };
     };
+    "vscode-jsonrpc-5.1.0-next.1" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "5.1.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.1.0-next.1.tgz";
+        sha512 = "mwLDojZkbmpizSJSmp690oa9FB9jig18SIDGZeBCvFc2/LYSRvMm/WwWtMBJuJ1MfFh7rZXfQige4Uje5Z9NzA==";
+      };
+    };
     "vscode-languageclient-4.0.1" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
@@ -47341,13 +47305,13 @@ let
         sha512 = "0fuBZj9pMkeJ8OMyIvSGeRaRVhUaJt+yeFxi7a3sz/AbrngQdcxOovMXPgKuieoBSBKS05gXPS88BsWpJZfBkA==";
       };
     };
-    "vscode-languageclient-6.1.3" = {
+    "vscode-languageclient-7.0.0-next.1" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
-      version = "6.1.3";
+      version = "7.0.0-next.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-6.1.3.tgz";
-        sha512 = "YciJxk08iU5LmWu7j5dUt9/1OLjokKET6rME3cI4BRpiF6HZlusm2ZwPt0MYJ0lV5y43sZsQHhyon2xBg4ZJVA==";
+        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0-next.1.tgz";
+        sha512 = "JrjCUhLpQZxQ5VpWpilOHDMhVsn0fdN5jBh1uFNhSr5c2loJvRdr9Km2EuSQOFfOQsBKx0+xvY8PbsypNEcJ6w==";
       };
     };
     "vscode-languageserver-4.0.0" = {
@@ -47413,6 +47377,15 @@ let
         sha512 = "zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==";
       };
     };
+    "vscode-languageserver-protocol-3.16.0-next.2" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.16.0-next.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.2.tgz";
+        sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
+      };
+    };
     "vscode-languageserver-protocol-3.6.0" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -47458,6 +47431,15 @@ let
         sha512 = "+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==";
       };
     };
+    "vscode-languageserver-types-3.16.0-next.1" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.16.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.1.tgz";
+        sha512 = "tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==";
+      };
+    };
     "vscode-languageserver-types-3.6.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
@@ -47701,15 +47683,6 @@ let
         sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
       };
     };
-    "watchpack-1.6.0" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz";
-        sha512 = "i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==";
-      };
-    };
     "watchpack-1.6.1" = {
       name = "watchpack";
       packageName = "watchpack";
@@ -47809,13 +47782,13 @@ let
         sha512 = "VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==";
       };
     };
-    "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-cli-3.3.11" = {
@@ -48556,15 +48529,6 @@ let
         sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
       };
     };
-    "ws-7.2.1" = {
-      name = "ws";
-      packageName = "ws";
-      version = "7.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz";
-        sha512 = "sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==";
-      };
-    };
     "ws-7.2.3" = {
       name = "ws";
       packageName = "ws";
@@ -48868,7 +48832,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";
       };
     };
@@ -49421,22 +49385,22 @@ let
         sha512 = "CP0fwGk5Y+jel+A0AQbyqnIFZRRpkKOeYUibiTSmlgV9PcgNFFVwn86VcUIpDLOqVjF+9v+O9FWQMo+IUcV2mA==";
       };
     };
-    "yeoman-environment-2.9.1" = {
+    "yeoman-environment-2.9.5" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "2.9.1";
+      version = "2.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.9.1.tgz";
-        sha512 = "m9sotsBPqOrV2aqaCM68pbY0HfLzeYuWnEAsJblfGSuMiIy+xie1S1j9qboOlHyGe9Wyvg8AQx3xSwrQvIvb0A==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.9.5.tgz";
+        sha512 = "ntxV8VTZbP8QFuJZGT7vG8AsKeyGz8lXlfq2V2T5sl6SrU6UAEVgRreEGz9t+JbFGx1CSM/Ly2atG/avGuheyQ==";
       };
     };
-    "yeoman-generator-4.8.2" = {
+    "yeoman-generator-4.8.3" = {
       name = "yeoman-generator";
       packageName = "yeoman-generator";
-      version = "4.8.2";
+      version = "4.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.8.2.tgz";
-        sha512 = "4kJAf2u5mee8yO7Ph6e64KLHeC7sCSYPCP7YcCUjussBFzoMEqJ2+Dn2Yj41rBLArSBBmZOQ/e2bMYlh6qQ9ag==";
+        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.8.3.tgz";
+        sha512 = "yDPHBhfglqiyYlqBnaAmcE/wPznwSx11HCGVCpnnsqpnp45HmdsuBtiFSNDcygiFmz1HmkFWRLWHTai/b+9eiQ==";
       };
     };
     "yn-3.1.1" = {
@@ -49562,17 +49526,17 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "9.1.1";
+    version = "9.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-9.1.1.tgz";
-      sha512 = "sjRAV4UF8M5v+2gw+EwCYSgciBZDc05AbNxQt+uUdxdfR1QU9hifWq8WDxfOR6jdDP5YqMtQsNaFNwrUyjJJoQ==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-9.1.3.tgz";
+      sha512 = "/7yHOuiyMgpcoBuADPrF4Eo9VDysA57fsyrMlOH2WZmKdsjW032StS9EIOue5RNQ7y0DwrtgtnkjbpZ6nYo3Pw==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.901.1"
-      sources."@angular-devkit/core-9.1.1"
-      sources."@angular-devkit/schematics-9.1.1"
-      sources."@schematics/angular-9.1.1"
-      sources."@schematics/update-0.901.1"
+      sources."@angular-devkit/architect-0.901.3"
+      sources."@angular-devkit/core-9.1.3"
+      sources."@angular-devkit/schematics-9.1.3"
+      sources."@schematics/angular-9.1.3"
+      sources."@schematics/update-0.901.3"
       sources."@types/color-name-1.1.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONStream-1.3.5"
@@ -49810,7 +49774,7 @@ in
           sources."uuid-3.4.0"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."restore-cursor-3.1.0"
       sources."retry-0.10.1"
       sources."rimraf-3.0.2"
@@ -49836,7 +49800,7 @@ in
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
@@ -49891,7 +49855,7 @@ in
     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;
@@ -49901,18 +49865,18 @@ in
   "@antora/cli" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_cli";
     packageName = "@antora/cli";
-    version = "2.2.0";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.2.0.tgz";
-      sha512 = "/fQDYEMypZbC8LxpZak/3nsP8Rr3voXXvxSan/718uDJUHFwq1rHl9Y/pOoE/tRs0Qv1jtDvk2eZgFDlsMMmlQ==";
+      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.3.0.tgz";
+      sha512 = "YiAP7Ib4zhAE+owOKg1/cJ+1AQX4BGfvaMnGkHaSf6srutoLLCRIbD0InpSNobf+ouSMqqk6fiLmBVt/cu03og==";
     };
     dependencies = [
-      sources."@antora/playbook-builder-2.2.0"
-      sources."@iarna/toml-2.2.3"
+      sources."@antora/playbook-builder-2.3.0"
+      sources."@iarna/toml-2.2.5"
       sources."argparse-1.0.10"
       sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.1.2"
-      sources."commander-3.0.2"
+      sources."camelcase-keys-6.2.2"
+      sources."commander-5.0.0"
       (sources."convict-5.2.0" // {
         dependencies = [
           sources."json5-2.1.0"
@@ -49935,7 +49899,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The command line interface for Antora.";
-      homepage = "https://antora.org/";
+      homepage = https://antora.org/;
       license = "MPL-2.0";
     };
     production = true;
@@ -49945,25 +49909,25 @@ in
   "@antora/site-generator-default" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_site-generator-default";
     packageName = "@antora/site-generator-default";
-    version = "2.2.0";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.2.0.tgz";
-      sha512 = "fy2tG1I3/FK1s/y/GhGMkFICtXkkSOpxVy5OjBXXfkBNHQIHYSLDv460Gz8NvSiVe99LWWa+FOpr5G13Bb0bvw==";
+      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.0.tgz";
+      sha512 = "swDQeAEnC/ClmhHJ50UNJppUSAneOp2cHwZiRr3zUQ9+5+mvOrDEdHbyxH7mIwkoeiIcQ/UVw00bg4MwmQ0M0g==";
     };
     dependencies = [
-      sources."@antora/asciidoc-loader-2.2.0"
-      sources."@antora/content-aggregator-2.2.0"
-      sources."@antora/content-classifier-2.2.0"
-      sources."@antora/document-converter-2.2.0"
+      sources."@antora/asciidoc-loader-2.3.0"
+      sources."@antora/content-aggregator-2.3.0"
+      sources."@antora/content-classifier-2.3.0"
+      sources."@antora/document-converter-2.3.0"
       sources."@antora/expand-path-helper-1.0.0"
-      sources."@antora/navigation-builder-2.2.0"
-      sources."@antora/page-composer-2.2.0"
-      sources."@antora/playbook-builder-2.2.0"
-      sources."@antora/redirect-producer-2.2.0"
-      sources."@antora/site-mapper-2.2.0"
-      sources."@antora/site-publisher-2.2.0"
-      sources."@antora/ui-loader-2.2.0"
-      sources."@iarna/toml-2.2.3"
+      sources."@antora/navigation-builder-2.3.0"
+      sources."@antora/page-composer-2.3.0"
+      sources."@antora/playbook-builder-2.3.0"
+      sources."@antora/redirect-producer-2.3.0"
+      sources."@antora/site-mapper-2.3.0"
+      sources."@antora/site-publisher-2.3.0"
+      sources."@antora/ui-loader-2.3.0"
+      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"
@@ -49975,6 +49939,7 @@ in
       sources."bl-4.0.2"
       sources."bops-0.0.7"
       sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       (sources."buffer-5.6.0" // {
         dependencies = [
           sources."base64-js-1.3.1"
@@ -49991,7 +49956,7 @@ in
         ];
       })
       sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.1.2"
+      sources."camelcase-keys-6.2.2"
       sources."clean-git-ref-2.0.1"
       sources."clone-2.1.2"
       sources."clone-buffer-1.0.0"
@@ -50028,7 +49993,6 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."diff3-0.0.3"
-      sources."duplexer-0.1.1"
       sources."duplexer3-0.1.4"
       (sources."duplexify-3.7.1" // {
         dependencies = [
@@ -50040,10 +50004,10 @@ in
       sources."end-of-stream-1.4.4"
       sources."escape-string-regexp-2.0.0"
       sources."esprima-4.0.1"
-      sources."event-stream-3.3.4"
       sources."exit-on-epipe-1.0.1"
       sources."extend-3.0.2"
       sources."fd-slicer-1.1.0"
+      sources."fill-range-7.0.1"
       (sources."flush-write-stream-1.1.1" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -50051,7 +50015,6 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."from-0.1.7"
       sources."fs-extra-8.1.0"
       (sources."fs-mkdirp-stream-1.0.0" // {
         dependencies = [
@@ -50088,7 +50051,7 @@ in
         ];
       })
       sources."graceful-fs-4.2.3"
-      (sources."gulp-vinyl-zip-2.1.3" // {
+      (sources."gulp-vinyl-zip-2.2.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -50096,7 +50059,7 @@ in
           sources."through2-2.0.5"
         ];
       })
-      sources."handlebars-4.5.3"
+      sources."handlebars-4.7.6"
       sources."has-symbols-1.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."ieee754-1.1.13"
@@ -50108,13 +50071,14 @@ in
       sources."is-extglob-2.1.1"
       sources."is-glob-3.1.0"
       sources."is-negated-glob-1.0.0"
+      sources."is-number-7.0.0"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-valid-glob-1.0.0"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
-      sources."isomorphic-git-0.70.4"
+      sources."isomorphic-git-0.78.5"
       sources."js-yaml-3.13.1"
       sources."json-buffer-3.0.0"
       sources."json-stable-stringify-without-jsonify-1.0.1"
@@ -50129,13 +50093,11 @@ in
         ];
       })
       sources."lead-1.0.0"
-      sources."lodash-4.17.15"
       sources."lodash.clonedeep-4.5.0"
       sources."lowercase-keys-1.0.1"
       sources."map-obj-4.1.0"
-      sources."map-stream-0.1.0"
       sources."marky-1.2.1"
-      sources."matcher-2.0.0"
+      sources."matcher-2.1.0"
       sources."mime-db-1.43.0"
       sources."mime-types-2.1.26"
       sources."mimic-response-2.1.0"
@@ -50153,11 +50115,6 @@ in
       sources."object.assign-4.1.0"
       sources."once-1.4.0"
       sources."opal-runtime-1.0.11"
-      (sources."optimist-0.6.1" // {
-        dependencies = [
-          sources."minimist-0.0.10"
-        ];
-      })
       (sources."ordered-read-streams-1.0.1" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -50169,8 +50126,8 @@ in
       sources."pako-1.0.11"
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
-      sources."pause-stream-0.0.11"
       sources."pend-1.2.0"
+      sources."picomatch-2.2.2"
       sources."pify-4.0.1"
       sources."prepend-http-2.0.0"
       sources."printj-1.1.2"
@@ -50207,9 +50164,7 @@ in
       sources."simple-concat-1.0.0"
       sources."simple-get-3.1.0"
       sources."source-map-0.6.1"
-      sources."split-0.3.3"
       sources."sprintf-js-1.0.3"
-      sources."stream-combiner-0.0.4"
       sources."stream-shift-1.0.1"
       sources."string_decoder-1.3.0"
       sources."through-2.3.8"
@@ -50224,6 +50179,7 @@ in
       })
       sources."to-absolute-glob-2.0.2"
       sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       (sources."to-through-2.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -50252,7 +50208,7 @@ in
         ];
       })
       sources."vinyl-sourcemap-1.1.0"
-      sources."wordwrap-0.0.3"
+      sources."wordwrap-1.0.0"
       sources."wrappy-1.0.2"
       sources."xdg-basedir-3.0.0"
       sources."xmlhttprequest-1.8.0"
@@ -50264,7 +50220,7 @@ in
     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;
@@ -50285,7 +50241,7 @@ in
       sources."acorn-globals-4.3.4"
       sources."acorn-walk-6.2.0"
       sources."agent-base-5.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -50427,7 +50383,7 @@ 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;
@@ -50444,13 +50400,13 @@ in
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.14.0"
+      sources."@apollo/federation-0.14.1"
       (sources."@apollo/protobufjs-1.0.3" // {
         dependencies = [
-          sources."@types/node-10.17.19"
+          sources."@types/node-10.17.21"
         ];
       })
-      sources."@apollographql/apollo-tools-0.4.5"
+      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"
@@ -50467,7 +50423,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.9.4"
+      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.8.7" // {
@@ -50479,11 +50435,7 @@ in
       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" // {
-        dependencies = [
-          sources."@babel/types-7.9.5"
-        ];
-      })
+      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"
@@ -50557,7 +50509,6 @@ in
       sources."@babel/plugin-transform-unicode-regex-7.8.3"
       (sources."@babel/preset-env-7.9.5" // {
         dependencies = [
-          sources."@babel/types-7.9.5"
           sources."semver-5.7.1"
         ];
       })
@@ -50571,19 +50522,10 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."@babel/runtime-7.9.2" // {
-        dependencies = [
-          sources."regenerator-runtime-0.13.5"
-        ];
-      })
+      sources."@babel/runtime-7.9.2"
       sources."@babel/template-7.8.6"
-      (sources."@babel/traverse-7.9.5" // {
-        dependencies = [
-          sources."@babel/generator-7.9.5"
-          sources."@babel/types-7.9.5"
-        ];
-      })
-      sources."@babel/types-7.9.0"
+      sources."@babel/traverse-7.9.5"
+      sources."@babel/types-7.9.5"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.1"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
@@ -50598,7 +50540,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@oclif/config-1.14.0"
+      sources."@oclif/config-1.15.1"
       (sources."@oclif/errors-1.2.2" // {
         dependencies = [
           sources."clean-stack-1.3.0"
@@ -50682,8 +50624,8 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-2.0.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
-      (sources."@types/node-fetch-2.5.5" // {
+      sources."@types/node-13.13.2"
+      (sources."@types/node-fetch-2.5.6" // {
         dependencies = [
           sources."form-data-3.0.0"
         ];
@@ -50706,7 +50648,7 @@ in
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
@@ -50718,10 +50660,8 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      (sources."apollo-2.27.0" // {
+      (sources."apollo-2.27.3" // {
         dependencies = [
-          sources."minimist-0.0.8"
-          sources."mkdirp-0.5.1"
           sources."strip-ansi-5.2.0"
         ];
       })
@@ -50729,17 +50669,22 @@ in
       sources."apollo-cache-control-0.9.1"
       sources."apollo-cache-inmemory-1.6.5"
       sources."apollo-client-2.6.8"
-      sources."apollo-codegen-core-0.36.6"
-      sources."apollo-codegen-flow-0.34.6"
-      sources."apollo-codegen-scala-0.35.6"
-      sources."apollo-codegen-swift-0.36.6"
-      sources."apollo-codegen-typescript-0.36.6"
+      (sources."apollo-codegen-core-0.36.8" // {
+        dependencies = [
+          sources."recast-0.19.0"
+          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.7.1"
       sources."apollo-engine-reporting-protobuf-0.4.4"
-      sources."apollo-env-0.6.2"
-      sources."apollo-graphql-0.4.1"
-      sources."apollo-language-server-1.21.1"
+      sources."apollo-env-0.6.4"
+      sources."apollo-graphql-0.4.3"
+      sources."apollo-language-server-1.21.3"
       sources."apollo-link-1.2.14"
       sources."apollo-link-context-1.0.20"
       sources."apollo-link-error-1.1.13"
@@ -50788,18 +50733,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.9.1"
       sources."babel-core-7.0.0-bridge.0"
-      sources."babel-plugin-dynamic-import-node-2.3.0"
-      (sources."babel-polyfill-6.26.0" // {
-        dependencies = [
-          sources."core-js-2.6.11"
-        ];
-      })
-      (sources."babel-runtime-6.26.0" // {
-        dependencies = [
-          sources."core-js-2.6.11"
-          sources."regenerator-runtime-0.11.1"
-        ];
-      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
@@ -50852,7 +50786,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.12.0"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -50876,7 +50810,7 @@ in
       sources."callsites-2.0.0"
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001042"
+      sources."caniuse-lite-1.0.30001046"
       sources."capture-stack-trace-1.0.1"
       sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
@@ -50907,7 +50841,7 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      (sources."cli-progress-3.7.0" // {
+      (sources."cli-progress-3.8.0" // {
         dependencies = [
           sources."emoji-regex-8.0.0"
           sources."is-fullwidth-code-point-3.0.0"
@@ -51059,7 +50993,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.411"
+      sources."electron-to-chromium-1.3.415"
       sources."elegant-spinner-1.0.1"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
@@ -51171,11 +51105,7 @@ in
       sources."getpass-0.1.7"
       sources."git-clone-0.1.0"
       sources."git-config-path-1.0.1"
-      (sources."git-parse-1.0.3" // {
-        dependencies = [
-          sources."util.promisify-1.0.0"
-        ];
-      })
+      sources."git-parse-1.0.4"
       (sources."git-rev-sync-2.0.0" // {
         dependencies = [
           sources."graceful-fs-4.1.15"
@@ -51456,7 +51386,7 @@ in
       sources."moment-2.24.0"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanoid-2.1.11"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
@@ -51644,7 +51574,7 @@ in
       sources."redeyed-2.1.1"
       sources."regenerate-1.4.0"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.10.5"
+      sources."regenerator-runtime-0.13.5"
       sources."regenerator-transform-0.14.4"
       (sources."regex-not-1.0.2" // {
         dependencies = [
@@ -51667,7 +51597,7 @@ in
       sources."request-2.88.2"
       sources."request-promise-core-1.1.3"
       sources."request-promise-native-1.0.8"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -51752,14 +51682,14 @@ in
       sources."sort-keys-length-1.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.18" // {
         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-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       (sources."split-string-3.1.0" // {
@@ -51900,7 +51830,7 @@ in
       sources."treeify-1.1.0"
       sources."trim-repeated-1.0.0"
       sources."ts-invariant-0.4.4"
-      sources."ts-node-8.8.2"
+      sources."ts-node-8.9.0"
       sources."tslib-1.11.1"
       sources."tty-1.0.1"
       sources."tunnel-agent-0.6.0"
@@ -51908,7 +51838,7 @@ in
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
       sources."typescript-3.8.3"
-      sources."unbzip2-stream-1.4.1"
+      sources."unbzip2-stream-1.4.2"
       (sources."undefsafe-2.0.3" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -52016,7 +51946,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;
@@ -52322,7 +52252,7 @@ in
       sources."parse-passwd-1.0.0"
       sources."path-parse-1.0.6"
       sources."pkginfo-0.4.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."safe-buffer-5.1.2"
       sources."sax-0.5.8"
       sources."semver-5.7.1"
@@ -52360,7 +52290,7 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -52378,7 +52308,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;
@@ -52388,10 +52318,10 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "1.13.0";
+    version = "1.13.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.13.0.tgz";
-      sha512 = "A9+8217g+/5lNYm/ajk8klm8FkT3iJYNBooifk0V9ieLZ/dItt29xP/iQWIDAwQxqFzZpsTc+5Py3RcjFzSH6A==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.13.1.tgz";
+      sha512 = "9JbJ5i+wD6stYi2U2QF9xPrd1c+g5V2puLRet1y5UXOsqYhvYQt4E/JohRCYuHltbMX48dz8lx5RUcurkffZ7g==";
     };
     dependencies = [
       sources."abab-2.0.3"
@@ -52402,7 +52332,7 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."array-equal-1.0.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
@@ -52536,7 +52466,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The browser package manager";
-      homepage = "http://bower.io/";
+      homepage = http://bower.io/;
       license = "MIT";
     };
     production = true;
@@ -52609,7 +52539,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.43.0"
+      sources."mime-db-1.44.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -52637,7 +52567,7 @@ in
       sources."read-pkg-up-1.0.1"
       sources."redent-1.0.0"
       sources."repeating-2.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       (sources."rimraf-2.7.1" // {
         dependencies = [
           sources."glob-7.1.6"
@@ -52648,7 +52578,7 @@ in
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sprintf-js-1.0.3"
@@ -52666,7 +52596,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;
@@ -52795,7 +52725,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.0"
       sources."sha.js-2.4.11"
@@ -52867,10 +52797,10 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-10.17.19"
+      sources."@types/node-13.13.2"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-1.1.1"
       sources."ansi-styles-2.2.1"
       sources."append-0.1.1"
@@ -53108,7 +53038,7 @@ in
       sources."plist-3.0.1"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
-      sources."protobufjs-6.8.9"
+      sources."protobufjs-6.9.0"
       sources."psl-1.8.0"
       (sources."pump-0.3.5" // {
         dependencies = [
@@ -53148,7 +53078,7 @@ in
       sources."redent-1.0.0"
       sources."repeating-2.0.1"
       sources."request-2.88.2"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."rimraf-2.7.1"
       sources."router-0.6.2"
       sources."run-parallel-1.1.9"
@@ -53186,7 +53116,7 @@ in
       })
       sources."single-line-log-0.4.1"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."speedometer-0.1.4"
@@ -53275,7 +53205,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A well-tested CSS minifier";
-      homepage = "https://github.com/jakubpawlowicz/clean-css";
+      homepage = https://github.com/jakubpawlowicz/clean-css;
       license = "MIT";
     };
     production = true;
@@ -53490,10 +53420,10 @@ in
   coc-lists = nodeEnv.buildNodePackage {
     name = "coc-lists";
     packageName = "coc-lists";
-    version = "1.3.7";
+    version = "1.3.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.7.tgz";
-      sha512 = "b+BTZviGOZc7S5cyp9FHn7C/RD65YayWbIA6Oxws/uNwIi6U+T2jrHM4iNS+0g473wmNBdInGyVu1Bz6B1zYbg==";
+      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.8.tgz";
+      sha512 = "fQUlrvZ06EacKHDQDNEgO6wW/5u6oY/0dm3JsdqRVfBcK3+hyGf9rfsDom1qxpjBt4CgPiLTRwbDqmvpwaI0Zg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53508,10 +53438,10 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "0.8.0";
+    version = "0.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.8.0.tgz";
-      sha512 = "PqBFyBu2yyofWYuKbVfgwNSJKQFklvfWU3Kv7EcinacWHfScCJqFZJMS4/3wA5xyjAPPEp9IiJ6rfpFFf8sEQg==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.8.1.tgz";
+      sha512 = "69jOo9oD2JJUo5bMeoV5lcgaAJzMWO7KzWllckc+ZOGB46dE2Qev4MogRnwE/94GI6qc8Cx4RiMoRRLXYIWhyg==";
     };
     dependencies = [
       sources."@babel/runtime-7.9.2"
@@ -53560,7 +53490,7 @@ in
           sources."debug-4.1.1"
         ];
       })
-      (sources."metals-languageclient-0.1.23" // {
+      (sources."metals-languageclient-0.2.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.2"
@@ -53593,7 +53523,7 @@ in
       sources."safe-buffer-5.2.0"
       sources."semver-6.3.0"
       sources."shell-quote-1.7.2"
-      (sources."streamroller-2.2.3" // {
+      (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."debug-4.1.1"
         ];
@@ -53660,7 +53590,7 @@ in
       sources."@typescript-eslint/typescript-estree-1.13.0"
       sources."acorn-6.4.1"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ajv-keywords-3.4.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -53705,7 +53635,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001042"
+      sources."caniuse-lite-1.0.30001046"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
@@ -53791,7 +53721,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.411"
+      sources."electron-to-chromium-1.3.415"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
@@ -54196,7 +54126,7 @@ in
       sources."prelude-ls-1.1.2"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
-      sources."prettier-2.0.4"
+      sources."prettier-2.0.5"
       (sources."prettier-eslint-9.0.1" // {
         dependencies = [
           sources."prettier-1.19.1"
@@ -54264,7 +54194,7 @@ in
       sources."require-from-string-2.0.2"
       sources."require-main-filename-1.0.1"
       sources."require-relative-0.8.7"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -54325,7 +54255,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."specificity-0.3.2"
@@ -54646,11 +54576,11 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -54689,7 +54619,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.12.0"
       sources."cache-base-1.0.1"
       sources."call-me-maybe-1.0.1"
       sources."caller-callsite-2.0.0"
@@ -54697,7 +54627,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-4.1.0"
       sources."camelcase-keys-4.2.0"
-      sources."caniuse-lite-1.0.30001042"
+      sources."caniuse-lite-1.0.30001046"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
@@ -54756,7 +54686,7 @@ in
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
       sources."dot-prop-5.2.0"
-      sources."electron-to-chromium-1.3.411"
+      sources."electron-to-chromium-1.3.415"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -55013,7 +54943,7 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."replace-ext-1.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
@@ -55067,7 +54997,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."specificity-0.4.1"
@@ -55245,7 +55175,7 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."semver-5.7.1"
       sources."sprintf-js-1.0.3"
       sources."supports-color-5.5.0"
@@ -55301,10 +55231,10 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.4.15";
+    version = "1.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.4.15.tgz";
-      sha512 = "E7GGyo/DGcLnm/KhpHUMoo4yKsvqWYi054k1qWok1l5HUyCz5JwlN3MDUOj7SePm8PXCGS7ldFmRWyKiyU1jyw==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.1.tgz";
+      sha512 = "33mkWOHgvB7hS/mfhCt4PfHAepnLQaTMvvsCWN3daks7yYnOdeMFplD5UORRRvvcJoOEdQBtXXu960I/Xe4MCg==";
     };
     dependencies = [
       sources."typescript-3.8.3"
@@ -55359,7 +55289,7 @@ in
       sources."@types/glob-7.1.1"
       sources."@types/json-schema-7.0.4"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
@@ -55383,7 +55313,7 @@ in
           sources."indent-string-4.0.0"
         ];
       })
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -55888,7 +55818,7 @@ in
       sources."mout-0.5.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
@@ -56079,7 +56009,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
       sources."require-relative-0.8.7"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -56094,7 +56024,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-formatter-0.4.4"
+      sources."sass-formatter-0.4.5"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
@@ -56148,7 +56078,7 @@ in
       sources."source-map-url-0.4.0"
       sources."space-separated-tokens-1.1.5"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -56221,7 +56151,7 @@ in
       sources."stylus-supremacy-2.14.0"
       sources."suf-cli-0.1.1"
       sources."suf-node-1.1.1"
-      sources."suf-regex-0.0.14"
+      sources."suf-regex-0.0.17"
       sources."supports-color-5.5.0"
       sources."symbol-0.2.3"
       (sources."table-5.4.6" // {
@@ -56498,7 +56428,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Unfancy JavaScript";
-      homepage = "http://coffeescript.org/";
+      homepage = http://coffeescript.org/;
       license = "MIT";
     };
     production = true;
@@ -56636,10 +56566,10 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-0.3.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -57054,7 +56984,7 @@ in
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-2.0.0"
@@ -57115,7 +57045,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -57246,7 +57176,7 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."aggregate-error-3.0.1"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -57403,7 +57333,7 @@ in
       })
       sources."locate-path-2.0.0"
       sources."loud-rejection-1.6.0"
-      sources."make-dir-3.0.2"
+      sources."make-dir-3.1.0"
       sources."map-cache-0.2.2"
       sources."map-obj-2.0.0"
       sources."map-visit-1.0.0"
@@ -57486,7 +57416,7 @@ in
       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-1.17.0"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
       sources."safe-regex-1.1.0"
@@ -57530,7 +57460,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -57607,7 +57537,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.1"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -57885,15 +57815,15 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.1.0";
+    version = "3.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.1.0.tgz";
-      sha512 = "GqjMxZ/LNUXFxXKQP4u+uJlbsQhsgk7Mm0q2djYvI3sS/vPA+I1oqrEmsIrj5T3oCtWh3L+N9vd/8OQ5sLxOhw==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.1.1.tgz";
+      sha512 = "l4f3E7chtJp4QxiPBxEAE6gFSSF/gm+RxTfyQzxsl3nTGe1wHUU9AYUQgXQ86zfyq7n8gGmRd3MS5wYLodKo8g==";
     };
     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;
@@ -57915,7 +57845,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CSSLint";
-      homepage = "http://csslint.net/";
+      homepage = http://csslint.net/;
       license = "MIT";
     };
     production = true;
@@ -57932,7 +57862,7 @@ in
     };
     dependencies = [
       sources."abstract-random-access-1.1.2"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-align-2.0.0"
       sources."ansi-diff-1.1.1"
       sources."ansi-regex-3.0.0"
@@ -58211,7 +58141,7 @@ in
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
       sources."is-fullwidth-code-point-2.0.0"
-      sources."is-function-1.0.1"
+      sources."is-function-1.0.2"
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
       (sources."is-number-3.0.0" // {
@@ -58273,7 +58203,7 @@ in
       sources."min-document-2.19.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."mirror-folder-3.0.0"
+      sources."mirror-folder-3.0.1"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
@@ -58287,7 +58217,7 @@ in
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
       sources."mutexify-1.2.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.4.0"
       sources."nanoguard-1.3.0"
@@ -58296,7 +58226,7 @@ in
       sources."nanotiming-7.3.1"
       sources."napi-macros-2.0.0"
       sources."ncp-1.0.1"
-      sources."neat-input-1.11.0"
+      sources."neat-input-1.11.1"
       sources."neat-log-3.1.0"
       sources."neat-spinner-1.0.0"
       sources."neat-tasks-1.1.1"
@@ -58570,7 +58500,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;
@@ -58591,7 +58521,7 @@ 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;
@@ -58673,7 +58603,7 @@ in
       sources."mime-types-2.1.26"
       sources."minimist-0.0.10"
       sources."ms-0.7.0"
-      sources."nan-2.14.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"
@@ -58736,7 +58666,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!";
-      homepage = "https://github.com/okTurtles/dnschain";
+      homepage = https://github.com/okTurtles/dnschain;
       license = "MPL-2.0";
     };
     production = true;
@@ -58793,12 +58723,12 @@ in
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       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.657.0"
+      sources."aws-sdk-2.661.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.9.1"
       sources."base64-js-1.3.1"
@@ -58973,18 +58903,18 @@ in
       sources."@babel/template-7.8.6"
       sources."@babel/traverse-7.9.5"
       sources."@babel/types-7.9.5"
-      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/color-name-1.1.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       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.0"
+      sources."ajv-6.12.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -59122,7 +59052,7 @@ in
       })
       sources."loose-envify-1.4.0"
       sources."lowercase-keys-2.0.0"
-      (sources."make-dir-3.0.2" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -59191,7 +59121,7 @@ in
         ];
       })
       sources."redent-3.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
@@ -59211,7 +59141,7 @@ in
       })
       sources."source-map-0.5.7"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       (sources."string-length-3.1.0" // {
@@ -59269,7 +59199,7 @@ 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;
@@ -59290,7 +59220,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."acorn-7.1.1"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -59445,7 +59375,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;
@@ -59467,7 +59397,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."acorn-7.1.1"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -59575,7 +59505,7 @@ in
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-2.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
       sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
@@ -59627,7 +59557,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;
@@ -59643,7 +59573,7 @@ in
       sha1 = "81f5f98043cc2517053f96ba5d61ef5db430c010";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-escapes-1.4.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -59774,14 +59704,14 @@ in
       sources."repeating-2.0.1"
       sources."request-2.88.2"
       sources."request-progress-2.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."restore-cursor-1.0.1"
       sources."safe-buffer-5.1.2"
       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-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
@@ -59968,7 +59898,7 @@ in
         ];
       })
       sources."redent-3.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.0"
       sources."rxjs-6.5.5"
@@ -59979,7 +59909,7 @@ in
       sources."signal-exit-3.0.3"
       sources."slice-ansi-3.0.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."string-width-4.2.0"
@@ -60243,7 +60173,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."nconf-0.10.0"
       sources."ncp-0.4.2"
@@ -60531,7 +60461,7 @@ in
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nearley-2.19.2"
       sources."node-gyp-build-4.2.1"
       sources."node-polyglot-1.0.0"
@@ -60652,7 +60582,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;
@@ -60703,7 +60633,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.0"
+      sources."ajv-6.12.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -60837,7 +60767,7 @@ in
         ];
       })
       sources."lowercase-keys-1.0.1"
-      sources."make-dir-3.0.2"
+      sources."make-dir-3.1.0"
       sources."map-obj-4.1.0"
       (sources."meow-6.1.0" // {
         dependencies = [
@@ -60861,7 +60791,7 @@ in
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
       sources."onetime-5.1.0"
-      sources."ora-4.0.3"
+      sources."ora-4.0.4"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
@@ -60896,7 +60826,7 @@ in
       sources."redent-3.0.0"
       sources."registry-auth-token-4.1.1"
       sources."registry-url-5.1.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.0"
@@ -60908,7 +60838,7 @@ in
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."string-width-4.2.0"
@@ -60974,7 +60904,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."accepts-1.3.7"
       sources."agent-base-4.3.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -61101,7 +61031,7 @@ in
             ];
           })
           sources."is-fullwidth-code-point-3.0.0"
-          (sources."ora-4.0.3" // {
+          (sources."ora-4.0.4" // {
             dependencies = [
               sources."chalk-3.0.0"
             ];
@@ -61521,7 +61451,7 @@ in
       sources."request-promise-core-1.1.3"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-from-4.0.0"
       sources."responselike-1.0.2"
@@ -61554,13 +61484,13 @@ in
       sources."simple-errors-1.0.1"
       sources."snake-case-2.1.0"
       sources."source-map-0.5.7"
-      (sources."source-map-support-0.5.16" // {
+      (sources."source-map-support-0.5.18" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sprintf-js-1.0.3"
@@ -61867,7 +61797,7 @@ in
       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-1.17.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
@@ -62033,7 +61963,7 @@ in
           sources."supports-color-7.1.0"
         ];
       })
-      sources."systeminformation-4.23.3"
+      sources."systeminformation-4.23.5"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.11.0"
       sources."wordwrap-0.0.3"
@@ -62311,7 +62241,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stdout-1.0.1"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."next-tick-1.0.0"
       sources."normalize-package-data-2.5.0"
@@ -62376,7 +62306,7 @@ in
       sources."replace-homedir-1.0.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-options-1.1.0"
       sources."resolve-url-0.2.1"
@@ -62424,7 +62354,7 @@ in
       sources."source-map-url-0.4.0"
       sources."sparkles-1.0.1"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -62504,7 +62434,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The streaming build system.";
-      homepage = "https://gulpjs.com/";
+      homepage = https://gulpjs.com/;
       license = "MIT";
     };
     production = true;
@@ -62754,7 +62684,7 @@ in
       sources."replace-homedir-1.0.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
@@ -62793,7 +62723,7 @@ in
       sources."source-map-url-0.4.0"
       sources."sparkles-1.0.1"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -62849,7 +62779,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Command line interface for gulp";
-      homepage = "http://gulpjs.com/";
+      homepage = http://gulpjs.com/;
       license = "MIT";
     };
     production = true;
@@ -62880,7 +62810,7 @@ in
     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;
@@ -62896,7 +62826,7 @@ in
       sha512 = "uXuRyVhQa0HlNmZg5LJ1BRJvRq5f7IJL/34tItHhZr9re15pwaqAuLUAIcqtwd1bLUCE++7HVPtR+NSReFW0iA==";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.1"
@@ -63147,7 +63077,7 @@ in
       })
       sources."moment-2.24.0"
       sources."mv-2.1.1"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."ncp-2.0.0"
       sources."once-1.4.0"
       sources."optimist-0.6.1"
@@ -63231,7 +63161,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."jquery-3.5.0"
-      sources."jquery.terminal-2.15.2"
+      sources."jquery.terminal-2.15.4"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -63250,7 +63180,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;
@@ -63571,7 +63501,7 @@ in
     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;
@@ -63605,7 +63535,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."amdefine-1.0.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
@@ -63762,7 +63692,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."node-gyp-3.8.0" // {
         dependencies = [
           sources."semver-5.3.0"
@@ -63848,7 +63778,7 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-3.1.0"
       sources."resumer-0.0.0"
@@ -63867,7 +63797,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-1.0.1"
@@ -63994,10 +63924,10 @@ in
   jake = nodeEnv.buildNodePackage {
     name = "jake";
     packageName = "jake";
-    version = "10.4.6";
+    version = "10.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jake/-/jake-10.4.6.tgz";
-      sha512 = "bfxWbCowItajx7PV0xyoRfLC1DCND7z308JD5OvMhmsjO9232onI0jbbFZFWnvLSMzniRBhOee9EggsWBQ1+Ew==";
+      url = "https://registry.npmjs.org/jake/-/jake-10.5.2.tgz";
+      sha512 = "2twpudoNYV7izUgKoLoVCwLFV+x8W5PQHri4ZPSm3L2viTq+DxVPQi9WJoeDSTCKE/G3lB5e78KAbeFhYQpgKA==";
     };
     dependencies = [
       sources."ansi-styles-3.2.1"
@@ -64066,11 +63996,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."iterare-1.2.0"
-      (sources."jaeger-client-3.17.2" // {
-        dependencies = [
-          sources."opentracing-0.13.0"
-        ];
-      })
+      sources."jaeger-client-3.18.0"
       sources."lodash-4.17.15"
       sources."long-2.4.0"
       sources."minimatch-3.0.4"
@@ -64112,7 +64038,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;
@@ -64139,7 +64065,7 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-escape-sequences-4.1.0" // {
         dependencies = [
           sources."array-back-3.1.0"
@@ -64568,7 +64494,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."is-windows-1.0.2"
@@ -64581,7 +64507,7 @@ in
       sources."nextgen-events-1.3.0"
       sources."nice-try-1.0.5"
       sources."no-case-2.3.2"
-      sources."node-abi-2.15.0"
+      sources."node-abi-2.16.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
@@ -64962,7 +64888,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "beautifier.io for node";
-      homepage = "https://beautifier.io/";
+      homepage = https://beautifier.io/;
       license = "MIT";
     };
     production = true;
@@ -64985,7 +64911,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;
@@ -65081,7 +65007,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Static analysis tool for JavaScript";
-      homepage = "http://jshint.com/";
+      homepage = http://jshint.com/;
       license = "(MIT AND JSON)";
     };
     production = true;
@@ -65124,7 +65050,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;
@@ -65179,7 +65105,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Various utilities for JSON References (http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03).";
-      homepage = "https://github.com/whitlockjc/json-refs";
+      homepage = https://github.com/whitlockjc/json-refs;
       license = "MIT";
     };
     production = true;
@@ -65199,7 +65125,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.0"
+      sources."ajv-6.12.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -65335,7 +65261,7 @@ in
       sources."lodash-id-0.14.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
-      sources."make-dir-3.0.2"
+      sources."make-dir-3.1.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       (sources."method-override-3.0.0" // {
@@ -65460,7 +65386,7 @@ in
     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;
@@ -65487,7 +65413,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Validate JSON";
-      homepage = "http://zaach.github.com/jsonlint/";
+      homepage = http://zaach.github.com/jsonlint/;
     };
     production = true;
     bypassCache = true;
@@ -65573,7 +65499,7 @@ in
       })
       sources."fs-extra-7.0.1"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
@@ -65687,7 +65613,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Spectacular Test Runner for JavaScript.";
-      homepage = "http://karma-runner.github.io/";
+      homepage = http://karma-runner.github.io/;
       license = "MIT";
     };
     production = true;
@@ -65781,7 +65707,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;
@@ -65800,7 +65726,7 @@ in
       sources."abab-1.0.4"
       sources."acorn-2.7.0"
       sources."acorn-globals-1.0.9"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
       sources."asn1-0.2.4"
@@ -66149,7 +66075,7 @@ in
       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.0" // {
+      (sources."@octokit/endpoint-6.0.1" // {
         dependencies = [
           sources."is-plain-object-3.0.0"
           sources."isobject-4.0.0"
@@ -66160,7 +66086,7 @@ in
       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.0" // {
+      (sources."@octokit/request-5.4.2" // {
         dependencies = [
           sources."@octokit/request-error-2.0.0"
           sources."is-plain-object-3.0.0"
@@ -66170,17 +66096,17 @@ in
       })
       sources."@octokit/request-error-1.2.1"
       sources."@octokit/rest-16.43.1"
-      sources."@octokit/types-2.10.0"
+      sources."@octokit/types-2.12.1"
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       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.0"
+      sources."ajv-6.12.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
@@ -66785,7 +66711,7 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -66858,7 +66784,7 @@ in
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-1.0.1"
@@ -67020,7 +66946,7 @@ in
       sha512 = "tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
@@ -67083,7 +67009,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Leaner CSS";
-      homepage = "http://lesscss.org/";
+      homepage = http://lesscss.org/;
       license = "Apache-2.0";
     };
     production = true;
@@ -67108,7 +67034,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "clean-css plugin for less.js";
-      homepage = "http://lesscss.org/";
+      homepage = http://lesscss.org/;
     };
     production = true;
     bypassCache = true;
@@ -67282,7 +67208,7 @@ in
       sources."mixin-deep-1.3.2"
       sources."morgan-1.10.0"
       sources."ms-2.0.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
       sources."normalize-path-3.0.0"
@@ -67456,7 +67382,7 @@ in
     dependencies = [
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."anymatch-1.3.2"
       sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
@@ -67543,14 +67469,14 @@ in
       sources."ee-first-1.1.1"
       sources."emoji-regex-6.1.1"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-3.4.0" // {
+      (sources."engine.io-3.4.1" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."component-emitter-1.2.1"
           sources."debug-4.1.1"
@@ -67689,7 +67615,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -67949,7 +67875,7 @@ in
     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;
@@ -68070,12 +67996,12 @@ in
         ];
       })
       sources."@istanbuljs/schema-0.1.2"
-      (sources."@jest/transform-25.3.0" // {
+      (sources."@jest/transform-25.4.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@jest/types-25.3.0"
+      sources."@jest/types-25.4.0"
       sources."@types/babel__core-7.1.7"
       sources."@types/babel__generator-7.6.1"
       sources."@types/babel__template-7.0.2"
@@ -68085,7 +68011,7 @@ in
       sources."@types/istanbul-lib-coverage-2.0.1"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.1"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.4"
@@ -68115,7 +68041,7 @@ in
       sources."acorn-7.1.1"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.4.1"
       sources."amdefine-1.0.1"
@@ -68154,15 +68080,15 @@ in
       sources."babel-helper-mark-eval-scopes-0.4.3"
       sources."babel-helper-remove-or-void-0.4.3"
       sources."babel-helper-to-multiple-sequence-expressions-0.5.0"
-      sources."babel-jest-25.3.0"
+      sources."babel-jest-25.4.0"
       (sources."babel-loader-8.1.0" // {
         dependencies = [
           sources."mkdirp-0.5.5"
         ];
       })
-      sources."babel-plugin-dynamic-import-node-2.3.0"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-istanbul-6.0.0"
-      sources."babel-plugin-jest-hoist-25.2.6"
+      sources."babel-plugin-jest-hoist-25.4.0"
       sources."babel-plugin-minify-builtins-0.5.0"
       sources."babel-plugin-minify-constant-folding-0.5.0"
       sources."babel-plugin-minify-dead-code-elimination-0.5.1"
@@ -68188,7 +68114,7 @@ in
       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-jest-25.3.0"
+      sources."babel-preset-jest-25.4.0"
       sources."babel-preset-minify-0.5.1"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
@@ -68238,7 +68164,7 @@ in
       sources."browserify-rsa-4.0.1"
       sources."browserify-sign-4.0.4"
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.12.0"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -68253,7 +68179,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.30001042"
+      sources."caniuse-lite-1.0.30001046"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -68370,7 +68296,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.411"
+      sources."electron-to-chromium-1.3.415"
       sources."elliptic-6.5.2"
       sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
@@ -68460,7 +68386,7 @@ in
       sources."fs-constants-1.0.0"
       sources."fs-write-stream-atomic-1.0.10"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.1"
       sources."get-assigned-identifiers-1.2.0"
@@ -68488,7 +68414,7 @@ in
       sources."globals-11.12.0"
       sources."google-closure-compiler-js-20170910.0.1"
       sources."graceful-fs-4.2.3"
-      (sources."gunzip-maybe-1.4.1" // {
+      (sources."gunzip-maybe-1.4.2" // {
         dependencies = [
           sources."browserify-zlib-0.1.4"
           sources."pako-0.2.9"
@@ -68565,11 +68491,11 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."jest-haste-map-25.3.0"
+      sources."jest-haste-map-25.4.0"
       sources."jest-regex-util-25.2.6"
       sources."jest-serializer-25.2.6"
-      sources."jest-util-25.3.0"
-      (sources."jest-worker-25.2.6" // {
+      sources."jest-util-25.4.0"
+      (sources."jest-worker-25.4.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-7.1.0"
@@ -68607,7 +68533,7 @@ in
       sources."loose-envify-1.4.0"
       sources."lru-cache-5.1.1"
       sources."magic-string-0.25.7"
-      (sources."make-dir-3.0.2" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -68651,7 +68577,7 @@ in
         ];
       })
       sources."ms-2.1.2"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."ncp-2.0.0"
       sources."neo-async-2.6.1"
@@ -68791,7 +68717,7 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -68827,7 +68753,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."schema-utils-2.6.5"
+      sources."schema-utils-2.6.6"
       sources."semver-5.7.1"
       sources."serialize-javascript-2.1.2"
       sources."set-blocking-2.0.0"
@@ -68879,7 +68805,7 @@ in
       sources."source-list-map-0.1.8"
       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.18" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -68887,7 +68813,7 @@ in
       sources."source-map-url-0.4.0"
       sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -69013,7 +68939,7 @@ in
       sources."vm-browserify-1.1.2"
       sources."walker-1.0.7"
       sources."watchpack-1.6.1"
-      (sources."webpack-4.42.1" // {
+      (sources."webpack-4.43.0" // {
         dependencies = [
           sources."acorn-6.4.1"
           sources."micromatch-3.1.10"
@@ -69107,7 +69033,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Madoko is a fast scholarly Markdown processor written in Koka";
-      homepage = "http://madoko.codeplex.com/";
+      homepage = http://madoko.codeplex.com/;
     };
     production = true;
     bypassCache = true;
@@ -69123,7 +69049,7 @@ in
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
@@ -69247,7 +69173,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;
@@ -69800,7 +69726,7 @@ in
       sources."repeat-string-1.6.1"
       sources."replace-ext-1.0.0"
       sources."request-2.81.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-options-1.1.0"
       sources."resolve-url-0.2.1"
@@ -70021,7 +69947,7 @@ in
       sources."find-up-3.0.0"
       sources."flat-4.1.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."glob-7.1.3"
@@ -70105,7 +70031,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "simple, flexible, fun test framework";
-      homepage = "https://mochajs.org/";
+      homepage = https://mochajs.org/;
       license = "MIT";
     };
     production = true;
@@ -70229,7 +70155,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;
@@ -70268,7 +70194,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -70388,7 +70314,7 @@ in
     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;
@@ -70538,7 +70464,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."negotiator-0.6.2"
       (sources."node-pre-gyp-0.6.39" // {
         dependencies = [
@@ -70589,7 +70515,7 @@ in
           sources."qs-6.4.0"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."rimraf-2.2.8"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -70611,7 +70537,7 @@ in
       sources."signal-exit-3.0.3"
       sources."sntp-1.0.9"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       (sources."sshpk-1.16.1" // {
@@ -70684,7 +70610,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Web Inspector based nodeJS debugger";
-      homepage = "http://github.com/node-inspector/node-inspector";
+      homepage = http://github.com/node-inspector/node-inspector;
     };
     production = true;
     bypassCache = true;
@@ -71251,7 +71177,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Low-code programming for event-driven applications";
-      homepage = "http://nodered.org/";
+      homepage = http://nodered.org/;
       license = "Apache-2.0";
     };
     production = true;
@@ -71268,7 +71194,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -71393,7 +71319,7 @@ in
         ];
       })
       sources."request-2.88.2"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."retry-0.10.1"
       sources."rimraf-2.6.3"
       sources."safe-buffer-5.2.0"
@@ -71404,7 +71330,7 @@ in
       sources."slasp-0.0.4"
       sources."slide-1.1.6"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sshpk-1.16.1"
@@ -71441,7 +71367,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;
@@ -71506,7 +71432,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."escape-goat-2.1.1"
       sources."fill-range-7.0.1"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-stream-4.1.0"
       sources."glob-parent-5.1.1"
       sources."global-dirs-2.0.1"
@@ -71535,7 +71461,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."lowercase-keys-1.0.1"
-      (sources."make-dir-3.0.2" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -71605,7 +71531,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Simple monitor script for use during development of a node.js app.";
-      homepage = "http://nodemon.io/";
+      homepage = http://nodemon.io/;
       license = "MIT";
     };
     production = true;
@@ -71623,7 +71549,7 @@ in
     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;
@@ -71645,7 +71571,7 @@ in
       sources."@npmcli/promise-spawn-1.2.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@tootallnate/once-1.0.0"
+      sources."@tootallnate/once-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."agent-base-6.0.0"
       sources."agentkeepalive-4.1.0"
@@ -71779,7 +71705,7 @@ in
       sources."lodash-4.17.15"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-5.1.1"
-      (sources."make-dir-3.0.2" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -71919,7 +71845,7 @@ in
     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";
+      homepage = https://github.com/tjunnone/npm-check-updates;
       license = "Apache-2.0";
     };
     production = true;
@@ -71937,7 +71863,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -72093,7 +72019,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;
@@ -72134,7 +72060,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;
@@ -72248,7 +72174,7 @@ in
       sources."@babel/template-7.8.6"
       sources."@babel/traverse-7.9.5"
       sources."@babel/types-7.9.5"
-      sources."@iarna/toml-2.2.3"
+      sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@parcel/fs-1.11.0"
@@ -72265,7 +72191,7 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."alphanum-sort-1.0.2"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -72297,7 +72223,7 @@ in
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.9.1"
-      sources."babel-plugin-dynamic-import-node-2.3.0"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
           sources."regenerator-runtime-0.11.1"
@@ -72336,7 +72262,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.12.0"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -72353,7 +72279,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001042"
+      sources."caniuse-lite-1.0.30001046"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -72486,7 +72412,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.411"
+      sources."electron-to-chromium-1.3.415"
       sources."elliptic-6.5.2"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
@@ -72583,7 +72509,7 @@ in
       sources."html-tags-1.2.0"
       (sources."htmlnano-0.2.5" // {
         dependencies = [
-          sources."posthtml-0.12.2"
+          sources."posthtml-0.12.3"
           sources."terser-4.6.11"
         ];
       })
@@ -72715,7 +72641,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."define-property-2.0.2"
@@ -72892,7 +72818,7 @@ in
       sources."request-promise-native-1.0.8"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-2.0.0"
@@ -72948,7 +72874,7 @@ in
       sources."snapdragon-util-3.0.1"
       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.18"
       sources."source-map-url-0.4.0"
       (sources."split-string-3.1.0" // {
         dependencies = [
@@ -73119,7 +73045,7 @@ in
           sources."negotiator-0.6.2"
         ];
       })
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -73265,7 +73191,7 @@ in
       sources."ms-2.0.0"
       sources."msgpack5-3.6.0"
       sources."mv-2.1.1"
-      sources."nan-2.14.0"
+      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"
@@ -73614,7 +73540,7 @@ in
       sources."redent-1.0.0"
       sources."regexp.prototype.flags-1.3.0"
       sources."repeating-2.0.1"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."restore-cursor-2.0.0"
       sources."reverse-http-1.3.0"
       sources."rimraf-2.7.1"
@@ -73640,7 +73566,7 @@ in
       })
       sources."single-line-log-1.1.2"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."speedometer-0.1.4"
@@ -73695,7 +73621,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;
@@ -73714,7 +73640,7 @@ in
       sources."accepts-1.3.7"
       sources."addr-to-ip-port-1.5.1"
       sources."after-0.8.2"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."archiver-3.1.1"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
@@ -73802,14 +73728,14 @@ in
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.0" // {
+      (sources."engine.io-3.4.1" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -74076,15 +74002,15 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "4.13.0";
+    version = "4.14.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-4.13.0.tgz";
-      sha512 = "0zJwt+IxBCQECptU40AaUJOBOo830FV4wnSoUvIqVJpOg5HBa0mv/DTXRf/pjuvNYZcuO7KDoD2zXWuJk86khQ==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-4.14.0.tgz";
+      sha512 = "O6B5OD+wiO4srzegQTs0LiOrdExLvoKgG7UFL5+Lu1DhgqhW9NFP/pPg8+zKSrOQTontH3GGSWAkinxM3tCqnw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Fast, disk space efficient package manager";
-      homepage = "https://pnpm.js.org/";
+      homepage = https://pnpm.js.org/;
       license = "MIT";
     };
     production = true;
@@ -74107,7 +74033,7 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
@@ -74141,7 +74067,7 @@ in
       sources."find-up-4.1.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."get-stdin-7.0.0"
       sources."glob-7.1.6"
@@ -74253,15 +74179,15 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.0.4";
+    version = "2.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz";
-      sha512 = "SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz";
+      sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Prettier is an opinionated code formatter";
-      homepage = "https://prettier.io/";
+      homepage = https://prettier.io/;
       license = "MIT";
     };
     production = true;
@@ -74547,7 +74473,7 @@ in
         ];
       })
       sources."reject-unsatisfied-npm-version-1.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-npm-3.1.0"
       sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
@@ -74568,7 +74494,7 @@ in
       sources."slice-ansi-2.1.0"
       sources."sorcery-0.10.0"
       sources."source-map-0.5.7"
-      (sources."source-map-support-0.5.16" // {
+      (sources."source-map-support-0.5.18" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -74648,7 +74574,7 @@ in
     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;
@@ -74820,7 +74746,7 @@ 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;
@@ -74838,7 +74764,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The HTML Presentation Framework";
-      homepage = "http://revealjs.com/";
+      homepage = http://revealjs.com/;
       license = "MIT";
     };
     production = true;
@@ -74861,17 +74787,17 @@ in
       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.35"
+      sources."@types/node-12.12.37"
       sources."@types/node-fetch-2.5.6"
       sources."@types/resolve-0.0.8"
-      sources."@types/vscode-1.43.0"
-      sources."@typescript-eslint/eslint-plugin-2.28.0"
-      sources."@typescript-eslint/experimental-utils-2.28.0"
-      sources."@typescript-eslint/parser-2.28.0"
-      sources."@typescript-eslint/typescript-estree-2.28.0"
+      sources."@types/vscode-1.44.0"
+      sources."@typescript-eslint/eslint-plugin-2.29.0"
+      sources."@typescript-eslint/experimental-utils-2.29.0"
+      sources."@typescript-eslint/parser-2.29.0"
+      sources."@typescript-eslint/typescript-estree-2.29.0"
       sources."acorn-7.1.1"
       sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -74958,7 +74884,7 @@ in
       sources."flatted-2.0.2"
       sources."form-data-3.0.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."functional-red-black-tree-1.0.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
@@ -75047,11 +74973,11 @@ in
       sources."read-1.0.7"
       sources."readable-stream-3.6.0"
       sources."regexpp-3.1.0"
-      sources."resolve-1.16.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.6.1"
+      sources."rollup-2.7.2"
       sources."run-async-2.4.0"
       sources."rxjs-6.5.5"
       sources."safe-buffer-5.2.0"
@@ -75112,10 +75038,10 @@ in
           sources."tmp-0.0.29"
         ];
       })
-      sources."vscode-jsonrpc-5.0.1"
-      sources."vscode-languageclient-6.1.3"
-      sources."vscode-languageserver-protocol-3.15.3"
-      sources."vscode-languageserver-types-3.15.1"
+      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."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
@@ -75140,7 +75066,7 @@ in
       sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
@@ -75390,10 +75316,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "1.67.3";
+    version = "1.68.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-1.67.3.tgz";
-      sha512 = "GELorbWZI0iLroPAwuHBDF7xlTAlSfhkcSjsb0CBdBgKz8EU8eqhalzl8dU+C+hOM5j/LJK/ATwaIxJXndqwCw==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-1.68.0.tgz";
+      sha512 = "CLA8K4B/oZm1LwgUDAfCHiVYGszveDSlAUr2mIdzdcVc3CLjzlRZn7IVipy3myXOc7/+kocxOqs3VXogm9A4Wg==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -75407,7 +75333,7 @@ in
           sources."node-fetch-2.6.0"
         ];
       })
-      (sources."@serverless/components-2.29.3" // {
+      (sources."@serverless/components-2.30.1" // {
         dependencies = [
           sources."fs-extra-8.1.0"
           sources."globby-10.0.2"
@@ -75444,7 +75370,7 @@ in
           sources."https-proxy-agent-5.0.0"
         ];
       })
-      (sources."@serverless/platform-client-china-1.0.5" // {
+      (sources."@serverless/platform-client-china-1.0.6" // {
         dependencies = [
           sources."https-proxy-agent-5.0.0"
         ];
@@ -75457,7 +75383,7 @@ in
         ];
       })
       sources."@serverless/template-1.1.3"
-      (sources."@serverless/utils-china-0.1.3" // {
+      (sources."@serverless/utils-china-0.1.6" // {
         dependencies = [
           sources."https-proxy-agent-5.0.0"
         ];
@@ -75468,10 +75394,10 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
-      sources."@types/lodash-4.14.149"
+      sources."@types/lodash-4.14.150"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
-      (sources."@typescript-eslint/typescript-estree-2.28.0" // {
+      sources."@types/node-13.13.2"
+      (sources."@typescript-eslint/typescript-estree-2.29.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -75479,7 +75405,7 @@ in
       sources."adm-zip-0.4.14"
       sources."after-0.8.2"
       sources."agent-base-6.0.0"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."emoji-regex-7.0.3"
@@ -75530,7 +75456,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.657.0" // {
+      (sources."aws-sdk-2.661.0" // {
         dependencies = [
           sources."buffer-4.9.1"
           sources."isarray-1.0.0"
@@ -75705,7 +75631,7 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.8.24"
+      sources."dayjs-1.8.25"
       sources."debug-4.1.1"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
@@ -75782,7 +75708,7 @@ in
       sources."enabled-1.0.2"
       sources."encoding-0.1.12"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."ws-6.1.4"
         ];
@@ -75880,7 +75806,7 @@ in
           sources."type-1.2.0"
         ];
       })
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-amd-module-type-3.0.0"
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-proxy-2.1.0"
@@ -76011,10 +75937,10 @@ in
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonata-1.8.2"
+      sources."jsonata-1.8.3"
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
-      (sources."jszip-3.3.0" // {
+      (sources."jszip-3.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -76215,7 +76141,7 @@ in
       sources."request-promise-native-1.0.8"
       sources."requirejs-2.3.6"
       sources."requirejs-config-file-3.1.2"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-dependency-path-2.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -76293,7 +76219,7 @@ in
       sources."sort-keys-length-1.0.1"
       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.18"
       sources."source-map-url-0.4.0"
       sources."split-string-3.1.0"
       sources."split2-3.1.1"
@@ -76387,7 +76313,7 @@ in
       sources."type-check-0.3.2"
       sources."type-fest-0.11.0"
       sources."typescript-3.8.3"
-      sources."unbzip2-stream-1.4.1"
+      sources."unbzip2-stream-1.4.2"
       (sources."union-value-1.0.1" // {
         dependencies = [
           sources."is-extendable-0.1.1"
@@ -76486,7 +76412,7 @@ in
     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;
@@ -76506,7 +76432,7 @@ in
       sources."CSSwhat-0.4.7"
       sources."accepts-1.3.7"
       sources."after-0.8.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.6"
       sources."asn1-0.2.4"
@@ -77023,7 +76949,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."mv-2.1.1"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."ncp-2.0.0"
       sources."negotiator-0.5.3"
       sources."node-uuid-1.4.8"
@@ -77120,18 +77046,25 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.305.1";
+    version = "1.309.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.305.1.tgz";
-      sha512 = "ThBDMwaVybu0aIXDjm5ecJUVxJePaf3qgv9g8Ocoldk7q9QJXBTvp+piAtyJlkGsWeWhCZAWATBxOcPRF30XcA==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.309.0.tgz";
+      sha512 = "NVizsLhGNhgjI+wCy1TajQoko+GVjop3r10BxX12KKxj3bUE9cDhqzkXmngHzuyFhTfdhED6yOzdg+jDvm1VpA==";
     };
     dependencies = [
-      sources."@snyk/cli-interface-2.3.2"
+      sources."@snyk/cli-interface-2.4.0"
       sources."@snyk/cocoapods-lockfile-parser-3.1.0"
       sources."@snyk/composer-lockfile-parser-1.2.0"
       sources."@snyk/configstore-3.2.0-rc1"
       sources."@snyk/dep-graph-1.16.1"
       sources."@snyk/gemfile-1.2.0"
+      (sources."@snyk/java-call-graph-builder-1.3.4" // {
+        dependencies = [
+          sources."ci-info-2.0.0"
+          sources."debug-4.1.1"
+          sources."snyk-config-3.0.0"
+        ];
+      })
       sources."@snyk/ruby-semver-2.1.0"
       (sources."@snyk/snyk-cocoapods-plugin-2.1.1" // {
         dependencies = [
@@ -77144,7 +77077,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/events-3.0.0"
       sources."@types/js-yaml-3.12.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/restify-4.3.6"
       sources."@types/semver-5.5.0"
       sources."@types/xml2js-0.4.3"
@@ -77296,7 +77229,7 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."js-yaml-3.13.1"
-      sources."jszip-3.3.0"
+      sources."jszip-3.4.0"
       sources."latest-version-3.1.0"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
@@ -77356,6 +77289,7 @@ in
       sources."prelude-ls-1.1.2"
       sources."prepend-http-1.0.4"
       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" // {
@@ -77419,15 +77353,14 @@ in
         ];
       })
       sources."snyk-module-1.9.1"
-      (sources."snyk-mvn-plugin-2.9.0" // {
+      (sources."snyk-mvn-plugin-2.10.0" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.3.1"
           sources."debug-4.1.1"
           sources."tmp-0.1.0"
-          sources."tslib-1.9.3"
+          sources."tslib-1.11.0"
         ];
       })
-      sources."snyk-nodejs-lockfile-parser-1.17.0"
+      sources."snyk-nodejs-lockfile-parser-1.18.0"
       sources."snyk-nuget-plugin-1.16.0"
       sources."snyk-paket-parser-1.5.0"
       (sources."snyk-php-plugin-1.7.0" // {
@@ -77460,7 +77393,7 @@ in
         ];
       })
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.16"
+      sources."source-map-support-0.5.18"
       sources."sprintf-js-1.0.3"
       sources."statuses-1.5.0"
       (sources."string-width-2.1.1" // {
@@ -77483,8 +77416,12 @@ in
           sources."string_decoder-1.3.0"
         ];
       })
-      sources."temp-dir-1.0.0"
-      sources."tempfile-2.0.0"
+      sources."temp-dir-2.0.0"
+      (sources."tempfile-2.0.0" // {
+        dependencies = [
+          sources."temp-dir-1.0.0"
+        ];
+      })
       sources."term-size-1.2.0"
       sources."then-fs-2.0.0"
       sources."through-2.3.8"
@@ -77576,8 +77513,8 @@ in
       sources."component-inherit-0.0.3"
       sources."cookie-0.3.1"
       sources."debug-4.1.1"
-      sources."engine.io-3.4.0"
-      (sources."engine.io-client-3.4.0" // {
+      sources."engine.io-3.4.1"
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."ws-6.1.4"
         ];
@@ -77742,7 +77679,7 @@ in
       sources."redent-2.0.0"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."restore-cursor-2.0.0"
       sources."round-to-3.0.0"
       sources."safe-buffer-5.2.0"
@@ -77753,7 +77690,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."speedtest-net-1.6.2"
@@ -78169,7 +78106,7 @@ in
           sources."rimraf-2.4.5"
         ];
       })
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -78588,7 +78525,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;
@@ -78606,7 +78543,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;
@@ -78664,7 +78601,7 @@ in
           sources."semver-5.0.3"
         ];
       })
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."align-text-0.1.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -78681,7 +78618,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.657.0" // {
+      (sources."aws-sdk-2.661.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -78808,7 +78745,7 @@ in
       sources."drange-1.1.1"
       (sources."dtrace-provider-0.8.8" // {
         dependencies = [
-          sources."nan-2.14.0"
+          sources."nan-2.14.1"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -78817,14 +78754,14 @@ in
       sources."ejs-0.8.8"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.0" // {
+      (sources."engine.io-3.4.1" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ws-7.2.3"
         ];
       })
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ws-6.1.4"
@@ -79175,7 +79112,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."ret-0.2.2"
       sources."rethinkdb-2.4.2"
       sources."retry-0.9.0"
@@ -79237,7 +79174,7 @@ in
       })
       sources."source-map-0.6.1"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-1.0.1"
@@ -79525,7 +79462,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;
@@ -79881,7 +79818,7 @@ in
       sources."ms-2.0.0"
       sources."multer-1.4.2"
       sources."mute-stream-0.0.5"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
       sources."neo-async-2.6.1"
@@ -80171,7 +80108,7 @@ in
       sha256 = "886069ecc5eedf0371b948e8ff66e7f2943c85fe7cfdaa7183e1a3572d55852b";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -80491,13 +80428,13 @@ in
       sources."repeat-string-1.6.1"
       sources."replace-ext-1.0.0"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."rimraf-2.6.3"
       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-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."sprintf-js-1.0.3"
@@ -80560,7 +80497,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;
@@ -80582,7 +80519,7 @@ in
     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;
@@ -80621,7 +80558,7 @@ in
     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;
@@ -80820,7 +80757,7 @@ in
       sources."repeat-string-1.6.1"
       sources."repeating-2.0.1"
       sources."replace-ext-1.0.0"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
       sources."retext-english-3.0.4"
       sources."retext-equality-3.2.0"
@@ -80841,7 +80778,7 @@ in
         ];
       })
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-0.2.10"
@@ -80935,7 +80872,7 @@ in
     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;
@@ -80960,7 +80897,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;
@@ -80982,7 +80919,7 @@ in
     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;
@@ -81019,7 +80956,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;
@@ -81112,7 +81049,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;
@@ -81153,7 +81090,7 @@ in
     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;
@@ -81183,7 +81120,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;
@@ -81213,7 +81150,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;
@@ -81253,7 +81190,7 @@ in
     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;
@@ -81293,7 +81230,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;
@@ -81309,7 +81246,7 @@ in
       sha512 = "ozjuU9/DaxT5r7ivckvdrzTLRoMCOiUlNbEAxldoHD3jzbbCEm561rHkEw0Caek31tOL4y0yqHiFuRBRoGbmiQ==";
     };
     dependencies = [
-      sources."@sindresorhus/is-2.1.0"
+      sources."@sindresorhus/is-2.1.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@tokenizer/token-0.1.1"
       sources."@types/cacheable-request-6.0.1"
@@ -81317,14 +81254,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.11.1"
+      sources."@types/node-13.13.2"
       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.0"
+      sources."ajv-6.12.2"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."aproba-1.2.0"
@@ -81416,14 +81353,14 @@ in
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.0" // {
+      (sources."engine.io-3.4.1" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -81447,7 +81384,7 @@ in
       sources."extsprintf-1.4.0"
       sources."fast-deep-equal-3.1.1"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-text-encoding-1.0.1"
+      sources."fast-text-encoding-1.0.2"
       sources."file-type-14.1.3"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.1.0"
@@ -81537,7 +81474,7 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       (sources."needle-2.4.1" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -81728,7 +81665,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The self-hosted Web IRC client";
-      homepage = "https://thelounge.chat/";
+      homepage = https://thelounge.chat/;
       license = "MIT";
     };
     production = true;
@@ -81746,7 +81683,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "JavaScript 3D library";
-      homepage = "https://threejs.org/";
+      homepage = https://threejs.org/;
       license = "MIT";
     };
     production = true;
@@ -81781,7 +81718,7 @@ in
     };
     dependencies = [
       sources."adm-zip-0.4.13"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
@@ -81975,7 +81912,7 @@ in
       sources."mooremachine-2.3.0"
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."ncp-2.0.0"
       sources."once-1.3.2"
       sources."path-is-absolute-1.0.1"
@@ -82087,7 +82024,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;
@@ -82136,7 +82073,7 @@ in
     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;
@@ -82177,7 +82114,7 @@ in
     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;
@@ -82254,7 +82191,7 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
@@ -82335,14 +82272,14 @@ in
       sources."enabled-1.0.2"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.0" // {
+      (sources."engine.io-3.4.1" // {
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
           sources."ms-2.1.2"
         ];
       })
-      (sources."engine.io-client-3.4.0" // {
+      (sources."engine.io-client-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -82355,7 +82292,7 @@ in
       sources."etag-1.8.1"
       sources."eve-0.5.4"
       sources."express-4.17.1"
-      (sources."express-session-1.17.0" // {
+      (sources."express-session-1.17.1" // {
         dependencies = [
           sources."depd-2.0.0"
           sources."safe-buffer-5.2.0"
@@ -82663,7 +82600,7 @@ in
     };
     dependencies = [
       sources."absolute-0.0.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-red-0.1.1"
       sources."ansi-regex-3.0.0"
@@ -82914,7 +82851,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."uglify-js-3.9.1"
       sources."uid-0.0.2"
-      sources."unbzip2-stream-1.4.1"
+      sources."unbzip2-stream-1.4.2"
       sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
       sources."uri-js-4.2.2"
@@ -82971,14 +82908,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.11.1"
+      sources."@types/node-13.13.2"
       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.0"
+      sources."ajv-6.12.2"
       sources."ajv-keywords-2.1.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
@@ -83462,7 +83399,7 @@ in
       sources."mout-0.5.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
@@ -83642,7 +83579,7 @@ in
           sources."resolve-from-1.0.1"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -83709,7 +83646,7 @@ in
       sources."source-map-url-0.4.0"
       sources."space-separated-tokens-1.1.5"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -83941,7 +83878,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;
@@ -83951,10 +83888,10 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "4.1.0";
+    version = "4.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-4.1.0.tgz";
-      sha512 = "nhAeZ3BHI4rCT/J+s7JHg0U3G6qUMV8Bi44ohWm8X6GjlQV8tGcD6rkvN4Zk2zzMGaF9sHUOcRjyN79Ih8P/PQ==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-4.2.0.tgz";
+      sha512 = "WM03BEeC7CVw4PV8lwXKO6ag00MYdwMMe1SAJJfxz0uNMbTu7cYoH6Ia+e2DnAzpeOJLKCeL1IXvgxZSwVp4/Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.8.3"
@@ -83978,25 +83915,29 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."JSONSelect-0.2.1"
       sources."acorn-6.4.1"
       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.20.0" // {
+      (sources."addons-linter-1.23.0" // {
         dependencies = [
-          sources."regenerator-runtime-0.13.3"
+          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.10.2"
+      sources."ajv-6.12.0"
       sources."ajv-keywords-1.5.1"
       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"
         ];
@@ -84077,15 +84018,7 @@ in
       })
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
-      (sources."boxen-4.2.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."emoji-regex-8.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-        ];
-      })
+      sources."boxen-4.2.0"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -84104,7 +84037,6 @@ in
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -84121,7 +84053,12 @@ in
           sources."normalize-path-3.0.0"
         ];
       })
-      sources."chrome-launcher-0.12.0"
+      (sources."chrome-launcher-0.13.1" // {
+        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" // {
@@ -84147,9 +84084,6 @@ in
       (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"
         ];
       })
@@ -84219,9 +84153,11 @@ in
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.49.0" // {
+      (sources."dispensary-0.51.2" // {
         dependencies = [
-          sources."async-3.1.1"
+          sources."async-3.2.0"
+          sources."decamelize-1.2.0"
+          sources."yargs-15.3.1"
         ];
       })
       sources."doctrine-3.0.0"
@@ -84234,7 +84170,7 @@ in
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -84245,7 +84181,7 @@ in
       sources."es6-iterator-2.0.3"
       sources."es6-map-0.1.5"
       sources."es6-promise-2.3.0"
-      sources."es6-promisify-6.0.2"
+      sources."es6-promisify-6.1.0"
       (sources."es6-set-0.1.5" // {
         dependencies = [
           sources."es6-symbol-3.1.1"
@@ -84265,6 +84201,7 @@ in
           sources."debug-4.1.1"
           sources."espree-5.0.1"
           sources."has-flag-3.0.0"
+          sources."mkdirp-0.5.5"
           sources."ms-2.1.2"
           sources."semver-5.7.1"
           sources."strip-ansi-4.0.0"
@@ -84296,6 +84233,7 @@ in
           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"
@@ -84318,7 +84256,7 @@ in
       sources."eslint-scope-4.0.3"
       sources."eslint-utils-1.4.3"
       sources."eslint-visitor-keys-1.1.0"
-      (sources."espree-6.1.2" // {
+      (sources."espree-6.2.1" // {
         dependencies = [
           sources."acorn-7.1.1"
         ];
@@ -84334,7 +84272,17 @@ in
       sources."esutils-2.0.3"
       sources."event-emitter-0.3.5"
       sources."event-to-promise-0.8.0"
-      sources."execa-1.0.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."expand-brackets-2.1.4" // {
         dependencies = [
@@ -84375,8 +84323,12 @@ in
         ];
       })
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-2.0.1"
-      sources."fast-json-patch-2.2.1"
+      sources."fast-deep-equal-3.1.1"
+      (sources."fast-json-patch-2.2.1" // {
+        dependencies = [
+          sources."fast-deep-equal-2.0.1"
+        ];
+      })
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-redact-2.0.0"
@@ -84392,7 +84344,7 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      (sources."firefox-profile-1.3.0" // {
+      (sources."firefox-profile-1.3.1" // {
         dependencies = [
           sources."async-2.5.0"
         ];
@@ -84422,7 +84374,7 @@ in
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-4.1.0"
+      sources."get-stream-5.1.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       (sources."git-rev-sync-2.0.0" // {
@@ -84439,7 +84391,11 @@ in
       })
       sources."global-dirs-2.0.1"
       sources."globals-11.12.0"
-      sources."got-9.6.0"
+      (sources."got-9.6.0" // {
+        dependencies = [
+          sources."get-stream-4.1.0"
+        ];
+      })
       sources."graceful-fs-4.2.3"
       sources."graceful-readlink-1.0.1"
       sources."growly-1.3.0"
@@ -84459,6 +84415,7 @@ in
       sources."htmlparser2-3.10.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
+      sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."ignore-4.0.6"
@@ -84474,13 +84431,23 @@ in
       sources."ini-1.3.5"
       (sources."inquirer-6.5.2" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
+          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."strip-ansi-5.2.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"
         ];
       })
@@ -84499,7 +84466,7 @@ in
       sources."is-descriptor-1.0.2"
       sources."is-extendable-1.0.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.3.2"
       sources."is-mergeable-object-1.1.1"
@@ -84519,7 +84486,7 @@ in
       sources."is-regex-1.0.5"
       sources."is-relative-0.1.3"
       sources."is-resolvable-1.1.0"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -84582,7 +84549,7 @@ in
       sources."lodash.once-4.1.1"
       sources."lodash.sortby-4.7.0"
       sources."lowercase-keys-1.0.1"
-      (sources."make-dir-3.0.2" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -84591,12 +84558,13 @@ 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.3"
+      sources."mdn-browser-compat-data-1.0.15"
       (sources."mem-5.1.1" // {
         dependencies = [
           sources."mimic-fn-2.1.0"
         ];
       })
+      sources."merge-stream-2.0.0"
       sources."micromatch-3.1.10"
       sources."mime-db-1.43.0"
       sources."mime-types-2.1.26"
@@ -84605,11 +84573,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mixin-deep-1.3.2"
-      (sources."mkdirp-0.5.1" // {
-        dependencies = [
-          sources."minimist-0.0.8"
-        ];
-      })
+      sources."mkdirp-1.0.3"
       sources."moment-2.24.0"
       sources."ms-2.0.0"
       sources."multimatch-4.0.0"
@@ -84617,11 +84581,12 @@ in
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
+          sources."mkdirp-0.5.5"
           sources."rimraf-2.4.5"
         ];
       })
       sources."mz-2.7.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
@@ -84637,7 +84602,11 @@ in
       })
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-4.0.1" // {
+        dependencies = [
+          sources."path-key-3.1.1"
+        ];
+      })
       sources."nth-check-1.0.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
@@ -84666,12 +84635,11 @@ in
       sources."open-7.0.0"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
-      sources."os-locale-4.0.0"
+      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-finally-1.0.0"
       sources."p-is-promise-2.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -84698,11 +84666,11 @@ in
       sources."path-parse-1.0.6"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."pino-5.15.0"
+      sources."pino-6.0.0"
       sources."pino-std-serializers-2.4.2"
       sources."pluralize-1.2.1"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.26" // {
+      (sources."postcss-7.0.27" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-2.4.2" // {
@@ -84725,7 +84693,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."quick-format-unescaped-3.0.3"
+      sources."quick-format-unescaped-4.0.1"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."strip-json-comments-2.0.1"
@@ -84769,7 +84737,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."require-uncached-1.0.3"
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-from-1.0.1"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -84784,7 +84752,7 @@ in
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.1.1"
+      sources."semver-7.1.3"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -84806,6 +84774,7 @@ in
       (sources."sign-addon-2.0.5" // {
         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"
@@ -84817,6 +84786,7 @@ 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" // {
@@ -84849,7 +84819,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sonic-boom-0.7.7"
+      sources."sonic-boom-1.0.1"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.16"
@@ -84884,10 +84854,10 @@ in
           sources."once-1.3.3"
         ];
       })
-      (sources."string-width-2.1.1" // {
+      (sources."string-width-4.2.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."strip-ansi-4.0.0"
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."string.prototype.trimend-1.0.1"
@@ -84899,12 +84869,14 @@ in
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
       sources."strip-bom-stream-4.0.0"
-      sources."strip-eof-1.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" // {
         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"
         ];
@@ -84971,37 +84943,30 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."watchpack-1.6.0"
+      sources."watchpack-1.6.1"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-5.0.0"
       sources."whatwg-url-8.0.0"
       sources."when-3.7.7"
       sources."which-1.3.1"
       sources."which-module-2.0.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."widest-line-3.1.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"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-1.0.3"
+      (sources."write-1.0.3" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.2.1"
+      sources."ws-7.2.3"
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -85010,15 +84975,11 @@ in
       sources."y18n-4.0.0"
       (sources."yargs-15.1.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
           sources."decamelize-1.2.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-16.1.0"
         ];
       })
-      (sources."yargs-parser-16.1.0" // {
+      (sources."yargs-parser-18.1.3" // {
         dependencies = [
           sources."decamelize-1.2.0"
         ];
@@ -85040,7 +85001,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;
@@ -85050,10 +85011,10 @@ in
   webpack = nodeEnv.buildNodePackage {
     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==";
     };
     dependencies = [
       sources."@webassemblyjs/ast-1.9.0"
@@ -85077,7 +85038,7 @@ in
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-6.4.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.4.1"
       (sources."anymatch-2.0.0" // {
@@ -85306,7 +85267,7 @@ in
       sources."mkdirp-0.5.5"
       sources."move-concurrently-1.0.1"
       sources."ms-2.0.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."neo-async-2.6.1"
       (sources."node-libs-browser-2.2.1" // {
@@ -85418,7 +85379,7 @@ in
       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.18" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -85516,7 +85477,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;
@@ -85864,9 +85825,9 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.4.1"
       sources."ansi-colors-3.2.4"
@@ -86164,7 +86125,7 @@ in
       sources."ms-2.0.0"
       sources."multicast-dns-6.2.3"
       sources."multicast-dns-service-types-1.1.0"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
@@ -86463,7 +86424,7 @@ in
       sha512 = "P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.4.1"
       sources."ansi-colors-3.2.4"
@@ -86581,7 +86542,7 @@ in
     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;
@@ -86608,7 +86569,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-10.17.19"
+      sources."@types/node-13.13.2"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
@@ -86781,7 +86742,7 @@ in
       })
       sources."prettier-bytes-1.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."protobufjs-6.8.9"
+      sources."protobufjs-6.9.0"
       sources."pump-3.0.0"
       sources."qap-3.3.1"
       sources."queue-microtask-1.1.2"
@@ -86809,7 +86770,7 @@ in
       sources."semver-5.1.1"
       sources."simple-concat-1.0.0"
       sources."simple-get-2.8.1"
-      (sources."simple-peer-9.6.2" // {
+      (sources."simple-peer-9.7.0" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."ms-2.1.2"
@@ -86878,7 +86839,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;
@@ -87019,10 +86980,10 @@ in
       sources."@types/events-3.0.0"
       sources."@types/glob-7.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.1"
+      sources."@types/node-13.13.2"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.2"
       sources."ansi-0.3.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -87589,7 +87550,7 @@ in
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."resolve-1.16.0"
+      sources."resolve-1.17.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
@@ -87659,7 +87620,7 @@ in
       sources."source-map-url-0.4.0"
       sources."spawn-sync-1.0.15"
       sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
+      sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.0"
       sources."spdx-license-ids-3.0.5"
       sources."split-string-3.1.0"
@@ -87832,7 +87793,7 @@ in
         ];
       })
       sources."yeoman-doctor-4.0.0"
-      (sources."yeoman-environment-2.9.1" // {
+      (sources."yeoman-environment-2.9.5" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-regex-5.0.0"
@@ -87878,13 +87839,13 @@ in
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.8.2" // {
+      (sources."yeoman-generator-4.8.3" // {
         dependencies = [
           sources."debug-4.1.1"
           sources."diff-4.0.2"
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
-          (sources."make-dir-3.0.2" // {
+          (sources."make-dir-3.1.0" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
@@ -87917,11 +87878,11 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CLI tool for running Yeoman generators";
-      homepage = "http://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/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 04295dce261..141ce20fdcb 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Python library for date manipulation";
-    license     = "apache";
+    license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 895775eb87f..7a7a175362a 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, tzlocal, requests, vobject, lxml, nose }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, tzlocal
+, requests
+, vobject
+, lxml
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "caldav";
@@ -12,11 +19,16 @@ buildPythonPackage rec {
     sha256 = "80c33b143539da3a471148ac89512f67d9df3a5286fae5a023e2ad3923246c0d";
   };
 
+  # xandikos is only a optional test dependency, not available for python3
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace ", 'xandikos'" ""
+  '';
+
   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; # missing xandikos package
   };
 }
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 35df76e68cd..04ae5a78bdb 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    homepage = "http://certifi.io/";
+    homepage = "https://certifi.io/";
     description = "Python package for providing Mozilla's CA Bundle";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ koral ];
diff --git a/pkgs/development/python-modules/evernote/default.nix b/pkgs/development/python-modules/evernote/default.nix
index 55b60315c50..b245ff11747 100644
--- a/pkgs/development/python-modules/evernote/default.nix
+++ b/pkgs/development/python-modules/evernote/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
    meta = with stdenv.lib; {
     description = "Evernote SDK for Python";
-    homepage = "http://dev.evernote.com";
+    homepage = "https://dev.evernote.com";
     license = licenses.asl20;
     maintainers = with maintainers; [ hbunke ];
    };
diff --git a/pkgs/development/python-modules/fastjsonschema/default.nix b/pkgs/development/python-modules/fastjsonschema/default.nix
new file mode 100644
index 00000000000..b49f31e4022
--- /dev/null
+++ b/pkgs/development/python-modules/fastjsonschema/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+  # Check inputs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "fastjsonschema";
+  version = "2.14.4";
+
+  disabled = pythonOlder "3.3";
+
+  src = fetchFromGitHub {
+    owner = "horejsek";
+    repo = "python-fastjsonschema";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "0c3q31lqzrc52gacnqc271k5952qbyl0z4kagsqvl7fiwk84hqlz";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  dontUseSetuptoolsCheck = true;
+  disabledTests = [
+    "benchmark"
+
+    # these tests require network access
+    "remote ref"
+    "definitions"
+  ];
+
+  meta = with lib; {
+    description = "Fast JSON schema validator for Python.";
+    homepage = "https://horejsek.github.io/python-fastjsonschema/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 6b1b74cae8a..9a86acf83b5 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Python geospatial data analysis framework";
-    homepage = "http://geopandas.org";
+    homepage = "https://geopandas.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp ];
   };
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index 51f1e20662a..7b54d8cd5f1 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.12.7";
+  version = "1.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c63f76d1ce2261eb0cd147a24be25daff399e7df2c3d6ade3e813d2e9cb7d42f";
+    sha256 = "00i8732qib86xqa3652vkr178ib3682cls4jcv5g52y0rlkd8bfg";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index ef1553e6d09..fe401d9483e 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -7,15 +7,16 @@
 , markdown
 , pyct
 , testpath
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.7.0";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71d446f469b424cb190bc896e78d0415b2bbebf17c6e5b024ed1a73b4448f8f4";
+    sha256 = "0iz20k7mqn0560r4358yrzvrrfn00h8s6dim7p7y4icpgjw2mjnb";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
     markdown
     pyct
     testpath
+    tqdm
   ];
 
   # infinite recursion in test dependencies (hvplot)
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index 3467cb488f5..096bb2cfb91 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a2dcb07c6a4ff48bade69bb5d30d84a96911a7e9dcb76b6de975453f933332f8";
+    sha256 = "10crjlsn5vx03xwlnhga9faqq2rlw0qwabi45vnvhmz22qbd8w43";
   };
 
   checkInputs = [ flake8 nose ];
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
new file mode 100644
index 00000000000..eaf20baf75c
--- /dev/null
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+, cython
+}:
+
+buildPythonPackage rec {
+  pname = "pyclipper";
+  version = "1.1.0.post3";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "164yksvqwqvwzh8f8lq92asg87hd8rvcy2xb5vm4y4ccvd5xgb7i";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+    cython
+  ];
+
+  # Requires pytest_runner to perform tests, which requires deprecated
+  # features of setuptools. Seems better to not run tests. This should
+  # be fixed upstream.
+  doCheck = false;
+  pythonImportsCheck = [ "pyclipper" ];
+
+  meta = with stdenv.lib; {
+    description = "Cython wrapper for clipper library";
+    homepage    = "https://github.com/fonttools/pyclipper";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index d47ea812ca8..51b057e740c 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.6";
+  version = "2.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c8bxbm18h4idfdxqgklcz4n5bgsyl9y14gl9314fpflwa2c7ds8";
+    sha256 = "1djzr6cg3l19icwplmpii7zzr8gms9qcc2lfr8yc05siqzclk5xk";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/python-constraint/default.nix b/pkgs/development/python-modules/python-constraint/default.nix
new file mode 100644
index 00000000000..e6fcc4f8ab7
--- /dev/null
+++ b/pkgs/development/python-modules/python-constraint/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+  # Check inputs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "python-constraint";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "python-constraint";
+    repo = "python-constraint";
+    rev = version;
+    sha256 = "1dv11406yxmmgkkhwzqicajbg2bmla5xfad7lv57zyahxz8jzz94";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+  dontUseSetuptoolsCheck = true;
+
+  meta = with lib; {
+    description = "Constraint Solving Problem resolver for Python.";
+    homepage = "https://labix.org/doc/constraint/";
+    downloadPage = "https://github.com/python-constraint/python-constraint/releases";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix
index c62399db117..4bb0bce52eb 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.2";
+  version = "0.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c1722a496b08eb20ae3f2fedcc1ebcd207567b62e6453c7198a0b8f78ae96049";
+    sha256 = "092nl8pq1jqdylj0xyqwgi5qxvhy6qj2nx2lwwfkbnixlg6g8bbi";
   };
 
   propagatedBuildInputs = [ param ];
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7c36328f557..70c5ba38fea 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -18,16 +18,16 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.4.1";
+  version = "0.5.0";
 
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "Qiskit";
-    repo = pname;
+    repo = "qiskit-aer";
     rev = version;
     fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "1j2pv6jx5dlzanjp1qnf32s53d8jrlpv96nvymznkcnjvqn60gv9";
+    sha256 = "05lsirrdnnr5yqhwkgv08d9aib8xq4xpd6aq2pfqsi9qkii2fff1";
   };
 
   nativeBuildInputs = [
@@ -49,7 +49,7 @@ buildPythonPackage rec {
 
   prePatch = ''
     # remove dependency on PyPi cmake package, which isn't in Nixpkgs
-    substituteInPlace setup.py --replace "'cmake'" ""
+    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
   '';
 
   dontUseCmakeConfigure = true;
@@ -92,7 +92,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High performance simulators for Qiskit";
-    homepage = "https://github.com/QISKit/qiskit-aer";
+    homepage = "https://qiskit.org/aer";
+    downloadPage = "https://github.com/QISKit/qiskit-aer/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
     # Doesn't build on aarch64 (libmuparserx issue).
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index ee01a5c4cb5..9ff6404f2fc 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.6.5";
+  version = "0.6.6";
 
   disabled = pythonOlder "3.5";
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "03c0gl2qxyngf3cccjghjb0bhp0w78sdbvhim08cimf3cd577ldz";
+    sha256 = "080m5nsy3ia6bcdypq5d3ijb7762yl1l9llygmxsi6si449zl2cp";
   };
 
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index bed1bffe1a6..ea14bef2b9e 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.6.0";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0arbhwaa2kx04jbrj6hk3vvn92wdk6lrr9zx36pr6p22r0yyxnj9";
+    sha256 = "16c73m9gp1wcrygr6mnc0a9ps0i872bgc7v1zbqyh50kxbcrnpnz";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index 2f0a99dc0f8..a421b5f84ad 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -5,42 +5,37 @@
 , fetchpatch
 , numpy
 , qiskit-terra
+, scikitlearn
 , scipy
   # Check Inputs
+, ddt
 , pytestCheckHook
 , qiskit-aer
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.2.0";
+  version = "0.3.0";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   # Pypi's tarball doesn't contain tests
   src = fetchFromGitHub {
     owner = "Qiskit";
-    repo = pname;
+    repo = "qiskit-ignis";
     rev = version;
-    sha256 = "08a60xk5dq5wmqc23r4hr2v2nsf9hs0ybz832vbnd6d80dl6izyc";
+    sha256 = "16h04n9hxw669nq2ii16l6h75x8afisvp3j062n4c62kcqci0x4x";
   };
 
-  patches = [
-    # Update tests for compatibility with qiskit-aer 0.4 (#342). Remove in version > 0.2.0
-    (fetchpatch {
-      url = "https://github.com/Qiskit/qiskit-ignis/commit/d78c494579f370058e68e360f10149db81b52477.patch";
-      sha256 = "0ygkllf95c0jfvjg7gn399a5fd0wshsjpcn279kj7855m8j306h6";
-    })
-    # Fix statevector test over-eager validation (PR #333)
-    (fetchpatch {
-      url = "https://github.com/Qiskit/qiskit-ignis/commit/7cc8eb2e852b383ea429233fa43d3728931f1707.patch";
-      sha256 = "0mdygykilg4qivdaa731z3y56l3ax4jp1sil9npqv0gn4p03c9g5";
-    })
-  ];
+  # 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
+    scikitlearn
     scipy
   ];
 
@@ -49,13 +44,18 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
   preCheck = ''export HOME=$TMPDIR'';
   checkInputs = [
+    ddt
     pytestCheckHook
     qiskit-aer
   ];
+  # Test is in test/verification/test_entanglemet.py. test fails due to out-of-date calls & bad logic with this file since qiskit-ignis#328
+  # see qiskit-ignis#386 for all issues. Should be able to re-enable in future.
+  disabledTests = [ "TestEntanglement" ];
 
   meta = with lib; {
     description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
-    homepage = "https://github.com/QISKit/qiskit-ignis";
+    homepage = "https://qiskit.org/ignis";
+    downloadPage = "https://github.com/QISKit/qiskit-ignis/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 4a015e15d5d..14497b20b0d 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -2,35 +2,41 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+  # Python requirements
 , cython
 , dill
+, fastjsonschema
 , jsonschema
 , numpy
 , marshmallow
 , marshmallow-polyfield
-, matplotlib
 , networkx
 , ply
 , psutil
+, python-constraint
+, retworkx
 , scipy
 , sympy
+  # Python visualization requirements, semi-optional
+, ipywidgets
+, matplotlib
+, pillow
+, pydot
+, pygments
+, pylatexenc
+, seaborn
   # test requirements
 , ddt
 , hypothesis
-, ipywidgets
 , nbformat
 , nbconvert
-, pillow
-, pydot
-, python
-, pygraphviz
-, pylatexenc
 , pytestCheckHook
+, python
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.12.0";
+  version = "0.13.0";
 
   disabled = pythonOlder "3.5";
 
@@ -38,13 +44,14 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "1yarfziy2w8n1d7zyyxykfs68608j8md4kwfyhbyc6wy483fk9sy";
+    sha256 = "03fgqmyahgmkf5dbw19n9c1v8p4kmpk50wxhhc8435cclvs26x9j";
   };
 
   nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     dill
+    fastjsonschema
     jsonschema
     numpy
     marshmallow
@@ -53,34 +60,41 @@ buildPythonPackage rec {
     networkx
     ply
     psutil
+    python-constraint
+    retworkx
     scipy
     sympy
+    # Optional/visualization inputs
+    ipywidgets
+    matplotlib
+    pillow
+    pydot
+    pygments
+    pylatexenc
+    seaborn
   ];
 
+  postPatch = ''
+    # Fix relative imports in tests
+    touch test/python/dagcircuit/__init__.py
+  '';
 
   # *** Tests ***
   checkInputs = [
     ddt
     hypothesis
-    ipywidgets
     nbformat
     nbconvert
-    pillow
-    pydot
-    pygraphviz
-    pylatexenc
     pytestCheckHook
   ];
+  dontUseSetuptoolsCheck = true;  # can't find setup.py, so fails. tested by pytest
 
   pythonImportsCheck = [
     "qiskit"
     "qiskit.transpiler.passes.routing.cython.stochastic_swap.swap_trial"
   ];
 
-  dontUseSetuptoolsCheck = true;  # can't find setup.py, so fails. tested by pytest
-
   disabledTests = [
-    "test_long_name"  # generated circuit images differ for some reason
     "test_jupyter_jobs_pbars" # needs IBMQ provider package (qiskit-ibmq-provider), circular dependency
   ];
 
@@ -112,7 +126,8 @@ buildPythonPackage rec {
     longDescription = ''
       Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
     '';
-    homepage = "https://github.com/QISKit/qiskit-terra";
+    homepage = "https://qiskit.org/terra";
+    downloadPage = "https://github.com/QISKit/qiskit-terra/releases";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 3b5c9e706dc..ca0988955d5 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.17.0";
+  version = "0.18.2";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "1cnjcvvzklyq102fipqnwd5ham0sp0451gp7j79cwwsxzvji6pcc";
+    sha256 = "05pwpcps1ksqx6m6hwq90l8sbak64fsz76yv4q3jplfjf6597k6p";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/retworkx/default.nix b/pkgs/development/python-modules/retworkx/default.nix
new file mode 100644
index 00000000000..531edab2746
--- /dev/null
+++ b/pkgs/development/python-modules/retworkx/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, pythonAtLeast
+, isPy37
+, isPy38
+, 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";
+
+  github-source = fetchFromGitHub {
+    owner = "Qiskit";
+    repo = "retworkx";
+    rev = rx-version;
+    sha256 = "160w5vkzrl5rzcrdwhjq820i5lmc527m6hg0kxx0k6n2bz9qn26g";
+  };
+in
+buildPythonPackage rec {
+  pname = "retworkx";
+  version = rx-version;
+  format = "wheel";
+
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.9"; # compiled versions only included for 3.5 <= py <= 3.8
+
+  src = fetchPypi {
+    inherit pname version format;
+    inherit (wheel-args) python sha256;
+    abi = if pythonOlder "3.8" then "${wheel-args.python}m" else wheel-args.python;
+    platform = "manylinux2010_x86_64"; # i686, aarch64, and ppc64 also available, restricting to x86 for simplicity
+  };
+
+  pythonImportsCheck = [ "retworkx" ];
+
+  checkInputs = [ pytestCheckHook ];
+  preCheck = ''
+    pushd $(mktemp -d)
+    cp -r ${github-source}/$sourceRoot/tests .
+  '';
+  postCheck = "popd";
+
+  meta = with lib; {
+    description = "A python graph library implemented in Rust.";
+    homepage = "https://retworkx.readthedocs.io/en/latest/index.html";
+    downloadPage = "https://github.com/Qiskit/retworkx/releases";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/python-modules/scikitlearn/0.20.nix b/pkgs/development/python-modules/scikitlearn/0.20.nix
index 790c2970376..4d8e8d00f43 100644
--- a/pkgs/development/python-modules/scikitlearn/0.20.nix
+++ b/pkgs/development/python-modules/scikitlearn/0.20.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A set of python modules for machine learning and data mining";
-    homepage = "http://scikit-learn.org";
+    homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix
index d5d5ee8b788..c7519ee3962 100644
--- a/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/pkgs/development/python-modules/scikitlearn/default.nix
@@ -61,7 +61,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "A set of python modules for machine learning and data mining";
-    homepage = "http://scikit-learn.org";
+    homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index a9947e7e689..ace6c248ab2 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -53,6 +53,8 @@ in buildPythonPackage rec {
 
   setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
 
+  SCIPY_USE_G77_ABI_WRAPPER = 1;
+
   meta = {
     description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
     homepage = "https://www.scipy.org/";
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 05c0c43c15c..2827f7151f4 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -26,7 +26,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.1.0";
   pname = "Scrapy";
 
   disabled = isPy27;
@@ -78,7 +78,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "85581a01f4160a103ca9906ffa4e44474f4ecd1685f0934728892c58ebf111f6";
+    sha256 = "640aea0f9be9b055f5cfec5ab78ee88bb37a5be3809b138329bd2af51392ec7f";
   };
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/subdownloader/default.nix b/pkgs/development/python-modules/subdownloader/default.nix
index 8c5ab94f9d6..c4d57bef0ea 100644
--- a/pkgs/development/python-modules/subdownloader/default.nix
+++ b/pkgs/development/python-modules/subdownloader/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Tool for automatic download/upload subtitles for videofiles using fast hashing";
-    homepage = "http://www.subdownloader.net";
+    homepage = "https://www.subdownloader.net";
     license = licenses.gpl3;
   };
 
diff --git a/pkgs/development/python-modules/untangle/default.nix b/pkgs/development/python-modules/untangle/default.nix
index f8f172e78b1..9b8e915a8ba 100644
--- a/pkgs/development/python-modules/untangle/default.nix
+++ b/pkgs/development/python-modules/untangle/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   
   meta = with lib; {
     description = "Convert XML documents into Python objects";
-    homepage = "http://github.com/stchris/untangle";
+    homepage = "https://github.com/stchris/untangle";
     license = licenses.mit;
     maintainers = [ maintainers.arnoldfarkas ];
   };
diff --git a/pkgs/development/tools/gocode/default.nix b/pkgs/development/tools/gocode/default.nix
index 12c94cbd3cd..b4e9a8d43cb 100644
--- a/pkgs/development/tools/gocode/default.nix
+++ b/pkgs/development/tools/gocode/default.nix
@@ -2,8 +2,8 @@
 
 buildGoPackage rec {
   pname = "gocode-unstable";
-  version = "2018-11-05";
-  rev = "0af7a86943a6e0237c90f8aeb74a882e1862c898";
+  version = "2020-04-06";
+  rev = "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c";
 
   goPackagePath = "github.com/mdempsky/gocode";
   excludedPackages = ''internal/suggest/testdata'';
@@ -18,7 +18,7 @@ buildGoPackage rec {
 
     owner = "mdempsky";
     repo = "gocode";
-    sha256 = "0fxqn0v6dbwarn444lc1xrx5vfkcidi73f4ba7l4clsb9qdqgyam";
+    sha256 = "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/gocode/deps.nix b/pkgs/development/tools/gocode/deps.nix
index ac966269706..b2518109171 100644
--- a/pkgs/development/tools/gocode/deps.nix
+++ b/pkgs/development/tools/gocode/deps.nix
@@ -1,11 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
 [
   {
     goPackagePath = "golang.org/x/tools";
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/tools";
-      rev = "78dc5bac0cacea7969e98b79c3b86597e0aa4e25";
-      sha256 = "16jg2x1sfm39kz4rchn0gxyq99fnkxw6v51wxriqbs76a2wrznp9";
+      rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+      sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
     };
   }
 ]
diff --git a/pkgs/development/tools/godef/default.nix b/pkgs/development/tools/godef/default.nix
index 60a155cf6c8..5cf51599272 100644
--- a/pkgs/development/tools/godef/default.nix
+++ b/pkgs/development/tools/godef/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "godef";
-  version = "1.1.1";
+  version = "1.1.2";
   rev = "v${version}";
 
   goPackagePath = "github.com/rogpeppe/godef";
   subPackages = [ "." ];
 
+  modSha256 = "06mi8f2qs54gk2anxqcf70h96s63a99xhnlm294djyv37wy1yffi";
+
   src = fetchFromGitHub {
     inherit rev;
     owner = "rogpeppe";
     repo = "godef";
-    sha256 = "1bpzqnb9fsk1pjjap3gm94pqch1jz02rfah9hg8iqbfm0dzpy31b";
+    sha256 = "0rhhg73kzai6qzhw31yxw3nhpsijn849qai2v9am955svmnckvf4";
   };
 
   meta = {
diff --git a/pkgs/development/tools/gogetdoc/default.nix b/pkgs/development/tools/gogetdoc/default.nix
index 1835121ba19..744ff0b6073 100644
--- a/pkgs/development/tools/gogetdoc/default.nix
+++ b/pkgs/development/tools/gogetdoc/default.nix
@@ -1,12 +1,14 @@
-{ buildGoPackage
+{ buildGoModule
 , lib
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gogetdoc-unstable";
-  version = "2018-10-25";
-  rev = "9098cf5fc236a5e25060730544af2ba6d65cd968";
+  version = "2019-02-28";
+  rev = "b37376c5da6aeb900611837098f40f81972e63e4";
+
+  modSha256 = "0j6a2b8hx54cnjz1ya65v9czg9ygqj6zwg52ffpz7cqkx0pgl9q4";
 
   goPackagePath = "github.com/zmb3/gogetdoc";
   excludedPackages = "\\(testdata\\)";
@@ -16,7 +18,7 @@ buildGoPackage rec {
 
     owner = "zmb3";
     repo = "gogetdoc";
-    sha256 = "159dgkd2lz07kimbpzminli5p539l4ry0dr93r46iz3lk5q76znl";
+    sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 14311b0c7a5..3b82eea1049 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.24.0";
+  version = "1.25.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "0m7mcppbgpx2kyl5f9nk61x521v49h18az5l4ads1f3jkkyiya6s";
+    sha256 = "0xf9chk6f1ydg2wyi6wzj2fxl641z7iyk6spp5gb1chq7plsi8sm";
   };
 
-  modSha256 = "0ab1s8pqkpss15rd9brin39lzx2fqkvq2v3nhk8kfrgpari2addk";
+  modSha256 = "15lb8y4kj2h514nl5517ah3ml9d2i71zv6ah08lpycz1b4v9hlwv";
   subPackages = [ "cmd/golangci-lint" ];
 
   meta = with lib; {
diff --git a/pkgs/development/tools/gometalinter/default.nix b/pkgs/development/tools/gometalinter/default.nix
deleted file mode 100644
index 1cd83e443aa..00000000000
--- a/pkgs/development/tools/gometalinter/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ buildGoPackage
-, deadcode
-, errcheck
-, fetchFromGitHub
-, go
-, go-check
-, go-tools
-, goconst
-, gocyclo
-, golint
-, gosec
-, gotools
-, ineffassign
-, maligned
-, interfacer
-, lib
-, makeWrapper
-, unconvert
-}:
-
-with lib;
-
-let
-  runtimeDeps = [
-    deadcode
-    errcheck
-    go
-    go-check
-    go-tools
-    goconst
-    gocyclo
-    golint
-    gosec
-    gotools
-    ineffassign
-    interfacer
-    maligned
-    unconvert
-  ];
-
-in buildGoPackage rec {
-  pname = "gometalinter";
-  version = "3.0.0";
-
-  goPackagePath = "github.com/alecthomas/gometalinter";
-  excludedPackages = "\\(regressiontests\\)";
-
-  src = fetchFromGitHub {
-    owner = "alecthomas";
-    repo = "gometalinter";
-    rev = "v${version}";
-    sha256 = "06dd60531qp0hxfwnxnyi36d6div1j781jvcb99ykhgrg0kwmzq9";
-  };
-
-  postInstall = ''
-    wrapProgram $bin/bin/gometalinter --prefix PATH : "${makeBinPath runtimeDeps}"
-  '';
-
-  buildInputs = [ makeWrapper ];
-
-  allowGoReference = true;
-
-  meta = with lib; {
-    description = "Concurrently run Go lint tools and normalise their output";
-    homepage = "https://github.com/alecthomas/gometalinter";
-    license = licenses.mit;
-    maintainers = with maintainers; [ kalbasit rvolosatovs ];
-    platforms = platforms.linux ++ platforms.darwin;
-  };
-}
diff --git a/pkgs/development/tools/gomodifytags/default.nix b/pkgs/development/tools/gomodifytags/default.nix
index 188f60e3ef0..2f784b999e2 100644
--- a/pkgs/development/tools/gomodifytags/default.nix
+++ b/pkgs/development/tools/gomodifytags/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "gomodifytags-unstable";
-  version = "2018-09-14";
-  rev = "141225bf62b6e5c9c0c9554a2e993e8c30aebb1d";
+buildGoModule rec {
+  pname = "gomodifytags";
+  version = "1.4.0";
+
+  modSha256 = "0nkdk2zgnwsg9lv20vqk2lshk4g9fqwqxd5bpr78nlahb9xk486s";
 
   goPackagePath = "github.com/fatih/gomodifytags";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "fatih";
     repo = "gomodifytags";
-    sha256 = "16qbp594l90qpvf388wlv0kf6wvqj1vz2mqq0g3qcz6dkrc4cjqa";
+    rev = "v${version}";
+    sha256 = "1436wjqs6n2jxlyzx38nm4ih6fr11bybivg3wy5nvzfs6cs59q63";
   };
 
   meta = {
diff --git a/pkgs/development/tools/gopkgs/default.nix b/pkgs/development/tools/gopkgs/default.nix
index 1f7d1d63a62..51c4255a013 100644
--- a/pkgs/development/tools/gopkgs/default.nix
+++ b/pkgs/development/tools/gopkgs/default.nix
@@ -1,19 +1,22 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gopkgs";
-  version = "2.0.1";
+  version = "2.1.2";
 
   goPackagePath = "github.com/uudashr/gopkgs";
-  goDeps = ./deps.nix;
+
+  subPackages = [ "cmd/gopkgs" ];
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "uudashr";
     repo = "gopkgs";
-    sha256 = "03zfwkmzwx2knkghky3irb2r78lbc1ccszjcg9y445b4pbqkn6w4";
+    sha256 = "1jak1bg6k5iasscw68ra875k59k3iqhka2ykabsd427k1j3mypln";
   };
 
+  modSha256 = "0v9lg5kq3776b2s4kgyi19jy8shjqrr0f5ljrchsj1k7867sxiw7";
+
   meta = {
     description = "Tool to get list available Go packages.";
     homepage = "https://github.com/uudashr/gopkgs";
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
new file mode 100644
index 00000000000..77fd195b1ab
--- /dev/null
+++ b/pkgs/development/tools/gopls/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, go, buildGoModule, fetchgit }:
+
+buildGoModule rec {
+  pname = "gopls";
+  version = "0.4.0";
+  rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+
+  src = fetchgit {
+    rev = "gopls/v${version}";
+    url = "https://go.googlesource.com/tools";
+    sha256 = "1sn6f638hgqpyd8rfyal3y6i6p21x4340jnhsvmgcd8lph49pplb";
+  };
+
+  modRoot = "gopls";
+  modSha256 = "1p0g28i707xyxz1g6hb56qlc4km9ik7vjky0v80hw7n73vzs5mr9";
+
+  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 ];
+  };
+}
diff --git a/pkgs/development/tools/gotools/default.nix b/pkgs/development/tools/gotools/default.nix
index 430f17bfb5b..6efb1d5da8f 100644
--- a/pkgs/development/tools/gotools/default.nix
+++ b/pkgs/development/tools/gotools/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gotools-unstable";
-  version = "2019-11-14";
-  rev = "4191b8cbba092238a318a71cdff48b20b4e1e5d8";
+  version = "2020-04-21";
+  rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
 
   src = fetchgit {
     inherit rev;
     url = "https://go.googlesource.com/tools";
-    sha256 = "16m62m303j4wqfjr1401xpqpb9m11bs6qc2dhf6x2za2d9pycish";
+    sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
   };
 
   # Build of golang.org/x/tools/gopls fails with:
@@ -21,7 +21,7 @@ buildGoModule rec {
     rm -rf gopls
   '';
 
-  modSha256 = "16cfzmfr9jv8wz0whl433xdm614dk63fzjxv6l1xvkagjmki49iy";
+  modSha256 = "1pijbkp7a9n2naicg21ydii6xc0g4jm5bw42lljwaks7211ag8k9";
 
   postConfigure = ''
     # Make the builtin tools available here
diff --git a/pkgs/development/tools/impl/default.nix b/pkgs/development/tools/impl/default.nix
index 223f3d425c9..88b8abd842f 100644
--- a/pkgs/development/tools/impl/default.nix
+++ b/pkgs/development/tools/impl/default.nix
@@ -5,17 +5,16 @@
 
 buildGoPackage rec {
   pname = "impl-unstable";
-  version = "2018-02-27";
-  rev = "3d0f908298c49598b6aa84f101c69670e15d1d03";
+  version = "2019-11-19";
+  rev = "6b9658ad00c7fbd61a7b50c195754413f6c4142c";
 
   goPackagePath = "github.com/josharian/impl";
 
   src = fetchFromGitHub {
     inherit rev;
-
     owner = "josharian";
     repo = "impl";
-    sha256 = "0xpip20x5vclrl0by1760lg73v6lj6nmkbiazlskyvpkw44h8a7c";
+    sha256 = "1d4fvj7fgiykznx1z4fmcc06x5hsqp9wn62m5qm1ds8m0rjqaxwi";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/impl/deps.nix b/pkgs/development/tools/impl/deps.nix
index 3477aaed607..f028df3be2d 100644
--- a/pkgs/development/tools/impl/deps.nix
+++ b/pkgs/development/tools/impl/deps.nix
@@ -1,11 +1,30 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
 [
   {
+    goPackagePath = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev = "2addee1ccfb22349ab47953a3046338e461eb4d1";
+      sha256 = "1r0drcji290nlq9czibcfynpwxyqx8a5p4b7lam6wblbh2lasfb6";
+    };
+  }
+  {
     goPackagePath = "golang.org/x/tools";
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/tools";
-      rev = "96e9e165b75e735822645eff82850b08c377be36";
-      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+      rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+      sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "9bdfabe68543c54f90421aeb9a60ef8061b5b544";
+      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
     };
   }
 ]
diff --git a/pkgs/development/tools/jazzy/Gemfile.lock b/pkgs/development/tools/jazzy/Gemfile.lock
index f703cb707e6..bed539369ac 100644
--- a/pkgs/development/tools/jazzy/Gemfile.lock
+++ b/pkgs/development/tools/jazzy/Gemfile.lock
@@ -12,10 +12,10 @@ GEM
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.8.4)
+    cocoapods (1.9.1)
       activesupport (>= 4.0.2, < 5)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.8.4)
+      cocoapods-core (= 1.9.1)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.2.2, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -30,13 +30,15 @@ GEM
       molinillo (~> 0.6.6)
       nap (~> 1.0)
       ruby-macho (~> 1.4)
-      xcodeproj (>= 1.11.1, < 2.0)
-    cocoapods-core (1.8.4)
+      xcodeproj (>= 1.14.0, < 2.0)
+    cocoapods-core (1.9.1)
       activesupport (>= 4.0.2, < 6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
+      netrc (~> 0.11)
+      typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
     cocoapods-downloader (1.3.0)
     cocoapods-plugins (1.0.0)
@@ -46,18 +48,20 @@ GEM
     cocoapods-trunk (1.4.1)
       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.5)
+    concurrent-ruby (1.1.6)
     escape (0.0.4)
-    ffi (1.11.3)
+    ethon (0.12.0)
+      ffi (>= 1.3.0)
+    ffi (1.12.2)
     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.1)
+    jazzy (0.13.3)
       cocoapods (~> 1.5)
       mustache (~> 1.1)
       open4
@@ -68,7 +72,7 @@ GEM
       xcinvoke (~> 0.3.0)
     json (2.3.0)
     liferaft (0.0.6)
-    minitest (5.13.0)
+    minitest (5.14.0)
     molinillo (0.6.6)
     mustache (1.1.1)
     nanaimo (0.2.6)
@@ -76,17 +80,19 @@ GEM
     netrc (0.11.0)
     open4 (1.3.4)
     redcarpet (3.5.0)
-    rouge (3.14.0)
+    rouge (3.18.0)
     ruby-macho (1.4.0)
-    sassc (2.2.1)
+    sassc (2.3.0)
       ffi (~> 1.9)
     sqlite3 (1.4.2)
     thread_safe (0.3.6)
-    tzinfo (1.2.6)
+    typhoeus (1.3.1)
+      ethon (>= 0.9.0)
+    tzinfo (1.2.7)
       thread_safe (~> 0.1)
     xcinvoke (0.3.0)
       liferaft (~> 0.0.6)
-    xcodeproj (1.14.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/tools/jazzy/gemset.nix b/pkgs/development/tools/jazzy/gemset.nix
index 872b6296786..f4f9c8104d4 100644
--- a/pkgs/development/tools/jazzy/gemset.nix
+++ b/pkgs/development/tools/jazzy/gemset.nix
@@ -57,21 +57,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "007ssx75588ji2d8l8s6c95dng1c7b6yacng8nngpy7maijzjgzc";
+      sha256 = "0wxr81qy4jsbxl066nlfp8zlqk31i6fsmd7f01xmi9bv04990hrs";
       type = "gem";
     };
-    version = "1.8.4";
+    version = "1.9.1";
   };
   cocoapods-core = {
-    dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap"];
+    dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zcisqb404828n5d3lbk9y2yyx8v2yr6rk1l8y9a4i1hp743fiad";
+      sha256 = "0c1679fkyp06dwsh93r0ldzly9vc74g0br4jdngwvdl4g0j4fyzc";
       type = "gem";
     };
-    version = "1.8.4";
+    version = "1.9.1";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -132,12 +132,14 @@
     version = "1.4.1";
   };
   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 = {
@@ -152,10 +154,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.6";
   };
   escape = {
     source = {
@@ -165,15 +167,26 @@
     };
     version = "0.0.4";
   };
+  ethon = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+      type = "gem";
+    };
+    version = "0.12.0";
+  };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ay35dm0lkcqprsiya6q2kwvyid884102ryipr4vrk790yfp8kd";
+      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
       type = "gem";
     };
-    version = "1.11.3";
+    version = "1.12.2";
   };
   fourflusher = {
     groups = ["default"];
@@ -230,10 +243,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0917v3dk9ks0apr0srk9sm6agk47iyh5bzfxqpkhd4dfgb4vpvjx";
+      sha256 = "1iv98hfmxf1vib63bq8l0wgx5n8kw2kmsj55y2vs04f2kcav3n4n";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.13.3";
   };
   json = {
     groups = ["default"];
@@ -258,10 +271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w16p7cvslh3hxd3cia8jg4pd85z7rz7xqb16vh42gj4rijn8rmi";
+      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
       type = "gem";
     };
-    version = "5.13.0";
+    version = "5.14.0";
   };
   molinillo = {
     groups = ["default"];
@@ -332,10 +345,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k5jrp0qc9p61mfcwyn1a7dajmkw04z6y76wa8a0axh1v2wrw8ld";
+      sha256 = "1n9h0ls2a2zq0bcsw31wxci1wdxb8s3vglfadxpcs6b04vkf6nqq";
       type = "gem";
     };
-    version = "3.14.0";
+    version = "3.18.0";
   };
   ruby-macho = {
     groups = ["default"];
@@ -353,10 +366,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bnid7r5z5hcin5hykvpvv8xig27wbbckxwis60z2aaxq4j9siz";
+      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.3.0";
   };
   sqlite3 = {
     groups = ["default"];
@@ -376,16 +389,27 @@
     };
     version = "0.3.6";
   };
+  typhoeus = {
+    dependencies = ["ethon"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
   tzinfo = {
     dependencies = ["thread_safe"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
       type = "gem";
     };
-    version = "1.2.6";
+    version = "1.2.7";
   };
   xcinvoke = {
     dependencies = ["liferaft"];
@@ -402,9 +426,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h9iba53mrb663qdqzpfbdwkwzqv7hndd0df71yr2kj2hzwjmkvb";
+      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
       type = "gem";
     };
-    version = "1.14.0";
+    version = "1.16.0";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 6466f1c4a28..36df02ff712 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.2";
+  version = "1.3.4";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-core/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "0jwvbymwaz4whw08n9scz6vk57sx7l3qddh4m5dlv2cxishwf7n3";
+    sha256 = "0mddr6jw7bl8k4iqfq3sfpxq8fffm2spi9xwdr4cskkw4qdgrrpz";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
new file mode 100644
index 00000000000..412830369b9
--- /dev/null
+++ b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, libarchive, python3, file }:
+
+stdenv.mkDerivation rec {
+  pname = "remarkable-toolchain";
+  version = "1.8-23.9.2019";
+
+  src = fetchurl {
+    url = "https://remarkable.engineering/oecore-x86_64-cortexa9hf-neon-toolchain-zero-gravitas-${version}.sh";
+    sha256 = "6299955721bcd9bef92a87ad3cfe4d31df8e2da95b0c4b2cdded4431aa6748b0";
+  };
+
+  nativeBuildInputs = [
+    libarchive
+    python3
+    file
+  ];
+
+  unpackCmd = "mkdir src; install $curSrc src/install-toolchain.sh";
+
+  dontBuild = true;
+
+  installPhase = ''
+    patchShebangs install-toolchain.sh
+    sed -i -e '3,9d' install-toolchain.sh # breaks PATH
+    sed -i 's|PYTHON=.*$|PYTHON=${python3}/bin/python|' install-toolchain.sh
+    ./install-toolchain.sh -D -y -d $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A toolchain for cross-compiling to reMarkable tablets";
+    homepage = "https://remarkable.engineering/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 1edc86017ba..5cc67cb5e17 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "1.10.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12zfcvbihirh38xxzc8fbx293m4vsrhq6kh0qnhnhlrx75m09l9i";
+    sha256 = "0y8cv8y92a4nqwrvqk2cxgs6nspqjk8jm4spr8rgkwlpfbrg74xn";
   };
 
-  cargoSha256 = "08fi0c4s0d1p2rqxvj1y82zg6xl3n0ikgyhgrjwh6xay8f0121f0";
+  cargoSha256 = "1qi1c4v5d5a4xcf1bjbdicrv35w6chl5swlm96c1h3pr9s09lqy7";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/development/tools/reftools/default.nix b/pkgs/development/tools/reftools/default.nix
index c8f540485a3..7e71926b895 100644
--- a/pkgs/development/tools/reftools/default.nix
+++ b/pkgs/development/tools/reftools/default.nix
@@ -1,12 +1,14 @@
-{ buildGoPackage
+{ buildGoModule
 , lib
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "reftools-unstable";
-  version = "2018-09-14";
-  rev = "654d0ba4f96d62286ca33cd46f7674b84f76d399";
+  version = "2019-12-21";
+  rev = "65925cf013156409e591f7a1be4df96f640d02f4";
+
+  modSha256 = "1sihahgkcj018ixbnz58npfh4drhqip2xmc9p7lq3an8japb9nyx";
 
   goPackagePath = "github.com/davidrjenni/reftools";
   excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
@@ -16,7 +18,7 @@ buildGoPackage rec {
 
     owner = "davidrjenni";
     repo = "reftools";
-    sha256 = "12y2h1h15xadc8pa3xsj11hpdxz5dss6k7xaa4h1ifkvnasjp5w2";
+    sha256 = "18jg13skqi2v2vh2k6jvazv6ymhhybangjd23xn2asfk9g6cvnjs";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index 8274c50f582..ebe23e19737 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "1zpnhigsa0cyr3lj0h7z2xhi01zjrnakvvrgmqz4lyf5gabh9vcg";
+    sha256 = "1xinaxxdsyhy8jl6albw8q9nl12iq11xny6a6a55niqzhvy1sdmp";
   };
 
-  cargoSha256 = "1rdh1b240gcjbk3wc384x459lbp8dy9a9mgrampqjk1n115zgbzp";
+  cargoSha256 = "0i326vny4gygalsimsgkqsvlq09av8pv9a7a0yxcbk170a7zyxb0";
 
   meta = with lib; {
     description =
diff --git a/pkgs/development/tools/rust/cargo-make/Cargo.lock b/pkgs/development/tools/rust/cargo-make/Cargo.lock
index 923e8ab61bb..1f7b5c1d1b7 100644
--- a/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-make/Cargo.lock
@@ -4,1102 +4,1086 @@
 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.6"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
 dependencies = [
- "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr",
 ]
 
 [[package]]
 name = "ansi_term"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
 dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
 ]
 
 [[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 = "attohttpc"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de33d017f0add8b019c6d98c3132c82c8815ca96bbed8e8006e7402c840562b3"
 dependencies = [
- "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "flate2",
+ "http",
+ "log",
+ "native-tls",
+ "openssl",
+ "url",
 ]
 
 [[package]]
 name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hermit-abi",
+ "libc",
+ "winapi",
 ]
 
 [[package]]
 name = "autocfg"
-version = "0.1.7"
-source = "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"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 
 [[package]]
 name = "base64"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
 
 [[package]]
 name = "base64"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3"
 
 [[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 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
 ]
 
 [[package]]
 name = "bytes"
 version = "0.5.4"
 source = "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)",
-]
+checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
 
 [[package]]
 name = "cargo-make"
-version = "0.30.5"
-dependencies = [
- "ci_info 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "duckscript 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "duckscriptsdk 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "envmnt 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "fern 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "fsio 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "git_info 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "run_script 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rusty-hook 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
- "shell2batch 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+version = "0.30.6"
+dependencies = [
+ "ci_info",
+ "clap",
+ "colored",
+ "dirs",
+ "duckscript",
+ "duckscriptsdk",
+ "envmnt",
+ "fern",
+ "fsio",
+ "git_info",
+ "glob",
+ "home",
+ "indexmap",
+ "log",
+ "run_script",
+ "rust_info",
+ "rusty-hook",
+ "semver",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "shell2batch",
+ "toml",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.50"
+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 = "ci_info"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b407009a4a51ae109dbdfcd7b6e4de38d148f37fad512b8c4623c642c4045e68"
 dependencies = [
- "envmnt 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "envmnt",
 ]
 
 [[package]]
 name = "clap"
 version = "2.33.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
 dependencies = [
- "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
 ]
 
 [[package]]
 name = "colored"
-version = "1.9.2"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
 dependencies = [
- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "atty",
+ "lazy_static",
+ "winapi",
 ]
 
 [[package]]
 name = "constant_time_eq"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "core-foundation"
-version = "0.6.4"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
 dependencies = [
- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.6.2"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
 
 [[package]]
 name = "crc32fast"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
 dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
 ]
 
 [[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 = "dirs"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
 dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "dirs-sys",
 ]
 
 [[package]]
 name = "dirs-sys"
 version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
 dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "libc",
+ "redox_users",
+ "winapi",
 ]
 
 [[package]]
 name = "duckscript"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "606ba1f416b4babf0971b0510b7e49ecb948ad381e4943d5b96a7a22ac701386"
 dependencies = [
- "fsio 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fsio",
 ]
 
 [[package]]
 name = "duckscriptsdk"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bdbd838e33acba34abb076b94db7bba43e9dbaccd00486322ce314ddc7d0979"
 dependencies = [
- "attohttpc 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "duckscript 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "fsio 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "uname 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "which 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "whoami 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "attohttpc",
+ "base64 0.12.0",
+ "cfg-if",
+ "duckscript",
+ "fs_extra",
+ "fsio",
+ "glob",
+ "home",
+ "java-properties",
+ "meval",
+ "num_cpus",
+ "rand",
+ "uname",
+ "walkdir",
+ "which",
+ "whoami",
 ]
 
 [[package]]
 name = "encoding"
 version = "0.2.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
 dependencies = [
- "encoding-index-japanese 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)",
+ "encoding-index-japanese",
+ "encoding-index-korean",
+ "encoding-index-simpchinese",
+ "encoding-index-singlebyte",
+ "encoding-index-tradchinese",
 ]
 
 [[package]]
 name = "encoding-index-japanese"
 version = "1.20141219.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
 dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
 ]
 
 [[package]]
 name = "encoding-index-korean"
 version = "1.20141219.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
 dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
 ]
 
 [[package]]
 name = "encoding-index-simpchinese"
 version = "1.20141219.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
 dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
 ]
 
 [[package]]
 name = "encoding-index-singlebyte"
 version = "1.20141219.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
 dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
 ]
 
 [[package]]
 name = "encoding-index-tradchinese"
 version = "1.20141219.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
 dependencies = [
- "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding_index_tests",
 ]
 
 [[package]]
 name = "encoding_index_tests"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
 
 [[package]]
 name = "envmnt"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fba7e7d8c007e12db7b3bd6f04b8e47e206c9173d9c75413a042ccc941723c8"
 dependencies = [
- "fsio 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fsio",
+ "indexmap",
 ]
 
 [[package]]
 name = "fern"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065"
 dependencies = [
- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
 dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
- "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
+ "crc32fast",
+ "libc",
+ "miniz_oxide",
 ]
 
 [[package]]
 name = "fnv"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
 
 [[package]]
 name = "foreign-types"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 dependencies = [
- "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "foreign-types-shared",
 ]
 
 [[package]]
 name = "foreign-types-shared"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "fs_extra"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
 
 [[package]]
 name = "fsio"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2131cb03096f67334dfba2f0bc46afc5564b08a919d042c6e217e2665741fc54"
 dependencies = [
- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand",
+ "users",
 ]
 
 [[package]]
 name = "getopts"
 version = "0.2.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
 dependencies = [
- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
 ]
 
 [[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 = "git_info"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "add3a9c3c08c8905a2165ff06891dd1c3bb32d81b2a32d79528abc9793dfb06f"
 
 [[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.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15"
 dependencies = [
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[package]]
 name = "home"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
 dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
 dependencies = [
- "bytes 0.5.4 (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)",
+ "bytes",
+ "fnv",
+ "itoa",
 ]
 
 [[package]]
 name = "idna"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
 dependencies = [
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.3.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292"
 dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg",
+ "serde",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
 
 [[package]]
 name = "java-properties"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa"
 dependencies = [
- "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "encoding",
+ "regex",
 ]
 
 [[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.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
 
 [[package]]
 name = "log"
 version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
 dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if",
 ]
 
 [[package]]
 name = "matches"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 
 [[package]]
 name = "memchr"
-version = "2.3.0"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
 
 [[package]]
 name = "meval"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9"
 dependencies = [
- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fnv",
+ "nom",
 ]
 
 [[package]]
 name = "miniz_oxide"
-version = "0.3.5"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5"
 dependencies = [
- "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "adler32",
 ]
 
 [[package]]
 name = "native-tls"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
 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)",
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
 ]
 
 [[package]]
 name = "nias"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0"
 
 [[package]]
 name = "nom"
 version = "1.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce"
 
 [[package]]
 name = "num_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 = "openssl"
-version = "0.10.26"
+version = "0.10.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
 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)",
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "lazy_static",
+ "libc",
+ "openssl-sys",
 ]
 
 [[package]]
 name = "openssl-probe"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.53"
+version = "0.9.55"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
 dependencies = [
- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
 ]
 
 [[package]]
 name = "percent-encoding"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "pkg-config"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
 
 [[package]]
 name = "ppv-lite86"
 version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.8"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
 dependencies = [
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
 dependencies = [
- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
 ]
 
 [[package]]
 name = "rand"
 version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 dependencies = [
- "getrandom 0.1.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 = "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 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "getrandom",
+ "redox_syscall",
+ "rust-argon2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.3.3"
+version = "1.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
 dependencies = [
- "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.13"
+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 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
 ]
 
 [[package]]
 name = "run_script"
-version = "0.6.0"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9527b8b68ef929243a3e8ad7471a2d80f6ac23b810aafd3df4a2e5212d8dacc1"
 dependencies = [
- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fsio",
 ]
 
 [[package]]
 name = "rust-argon2"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
 dependencies = [
- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "base64 0.11.0",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
 ]
 
 [[package]]
 name = "rust_info"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be941f2b996df7ffaf093366039c9dc182b3ca2e00f3e81df44e08c3611e773d"
 
 [[package]]
 name = "rusty-hook"
 version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27138b73a8ce63ae918707a5e3b57f9b0c0842a57b82f0e43474cf4e3aaf0ff4"
 dependencies = [
- "ci_info 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "nias 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ci_info",
+ "getopts",
+ "nias",
+ "toml",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
 
 [[package]]
 name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 dependencies = [
- "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-util",
 ]
 
 [[package]]
 name = "schannel"
-version = "0.1.16"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19"
 dependencies = [
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static",
+ "winapi",
 ]
 
 [[package]]
 name = "security-framework"
-version = "0.3.4"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f331b9025654145cd425b9ded0caf8f5ae0df80d418b326e2dc1c3dc5eb0620"
 dependencies = [
- "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
- "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
 ]
 
 [[package]]
 name = "security-framework-sys"
-version = "0.3.3"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
 dependencies = [
- "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
 name = "semver"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 dependencies = [
- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "semver-parser",
 ]
 
 [[package]]
 name = "semver-parser"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.104"
+version = "1.0.106"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
 
 [[package]]
 name = "serde_derive"
-version = "1.0.104"
+version = "1.0.106"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
 dependencies = [
- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.48"
+version = "1.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9"
 dependencies = [
- "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itoa",
+ "ryu",
+ "serde",
 ]
 
 [[package]]
 name = "shell2batch"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65"
 dependencies = [
- "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.1.0"
+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"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 
 [[package]]
 name = "syn"
-version = "1.0.14"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
 dependencies = [
- "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
 ]
 
 [[package]]
 name = "tempfile"
 version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 dependencies = [
- "cfg-if 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 = "thread_local"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
 dependencies = [
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static",
 ]
 
 [[package]]
 name = "toml"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
 dependencies = [
- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde",
 ]
 
 [[package]]
 name = "uname"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
 dependencies = [
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[package]]
 name = "unicode-bidi"
 version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
 dependencies = [
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "matches",
 ]
 
 [[package]]
 name = "unicode-normalization"
 version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
 dependencies = [
- "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "smallvec",
 ]
 
 [[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 = "url"
 version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
 dependencies = [
- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "idna",
+ "matches",
+ "percent-encoding",
 ]
 
 [[package]]
 name = "users"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
 dependencies = [
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[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 = "walkdir"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
 dependencies = [
- "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "same-file",
+ "winapi",
+ "winapi-util",
 ]
 
 [[package]]
 name = "wasi"
 version = "0.9.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 
 [[package]]
 name = "which"
 version = "3.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
 dependencies = [
- "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
 ]
 
 [[package]]
 name = "whoami"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a08eb844b158ea881e81b94556eede7f7e306e4c7b976aad88f49e6e36dec391"
 
 [[package]]
 name = "winapi"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 dependencies = [
- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
 ]
 
 [[package]]
 name = "winapi-i686-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.3"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 dependencies = [
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi",
 ]
 
 [[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[metadata]
-"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
-"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
-"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-"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 attohttpc 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de33d017f0add8b019c6d98c3132c82c8815ca96bbed8e8006e7402c840562b3"
-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-"checksum base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3"
-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-"checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-"checksum bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
-"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 ci_info 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b407009a4a51ae109dbdfcd7b6e4de38d148f37fad512b8c4623c642c4045e68"
-"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-"checksum colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8815e2ab78f3a59928fc32e141fbeece88320a240e43f47b2fd64ea3a88a5b3d"
-"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-"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-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
-"checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
-"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
-"checksum duckscript 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "606ba1f416b4babf0971b0510b7e49ecb948ad381e4943d5b96a7a22ac701386"
-"checksum duckscriptsdk 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bdbd838e33acba34abb076b94db7bba43e9dbaccd00486322ce314ddc7d0979"
-"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 envmnt 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5fba7e7d8c007e12db7b3bd6f04b8e47e206c9173d9c75413a042ccc941723c8"
-"checksum fern 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065"
-"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 fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
-"checksum fsio 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2131cb03096f67334dfba2f0bc46afc5564b08a919d042c6e217e2665741fc54"
-"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 git_info 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "add3a9c3c08c8905a2165ff06891dd1c3bb32d81b2a32d79528abc9793dfb06f"
-"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
-"checksum home 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
-"checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b"
-"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
-"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-"checksum java-properties 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "caf4418ade5bde22a283a7f2fb537ea397ec102718f259f2630714e7a5b389fa"
-"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 matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
-"checksum meval 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9"
-"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
-"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
-"checksum nias 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ab250442c86f1850815b5d268639dff018c0627022bc1940eb2d642ca1ce12f0"
-"checksum nom 1.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b8c256fd9471521bcb84c3cdba98921497f1a331cbc15b8030fc63b82050ce"
-"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
-"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 percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-"checksum proc-macro2 1.0.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 redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-"checksum redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-"checksum regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b5508c1941e4e7cb19965abef075d35a9a8b5cdf0846f30b4050e9b55dc55e87"
-"checksum regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e734e891f5b408a29efbf8309e656876276f49ab6a6ac208600b4419bd893d90"
-"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-"checksum run_script 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2dfbbb48b9c7ee71baadd968640f81ca4bc930c1a2029441eede96a6933275ac"
-"checksum rust-argon2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-"checksum rust_info 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "be941f2b996df7ffaf093366039c9dc182b3ca2e00f3e81df44e08c3611e773d"
-"checksum rusty-hook 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27138b73a8ce63ae918707a5e3b57f9b0c0842a57b82f0e43474cf4e3aaf0ff4"
-"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 schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
-"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df"
-"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
-"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
-"checksum serde_json 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25"
-"checksum shell2batch 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65"
-"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
-"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-"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 thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-"checksum uname 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-"checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-"checksum unicode-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 url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
-"checksum users 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
-"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
-"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-"checksum 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 which 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
-"checksum whoami 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a08eb844b158ea881e81b94556eede7f7e306e4c7b976aad88f49e6e36dec391"
-"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-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index dd4bfd8cfe0..6054a43d227 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.30.5";
+  version = "0.30.6";
 
   src =
     let
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
         owner = "sagiegurari";
         repo = pname;
         rev = version;
-        sha256 = "0p6rzkrwyfcrg4qrlb67rf0wb12kqldl1xg0rfnwc23y17fbwx49";
+        sha256 = "1kr3ay1gifyhwk6nlzq5vdi45583f5yvszk1pjsy2ki8l8j3ba3h";
       };
     in
     runCommand "source" {} ''
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "14gbs0ldkxxwav773r2851gyrd0h12dy3g0fcr2j3az4zq983ggd";
+  cargoSha256 = "0zfylhfz2c8yfixjiv41kl1xgmbbh2c38cc8ajx1pxrhgn7ig5dv";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index ec500db47d9..7eccf4d0c37 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-06";
+    rev = "2020-04-20";
     version = "unstable-${rev}";
-    sha256 = "0cm12707rq88w9yd4kkh26pnaqfvif6yyshk42pfi9vyv4ljfpcv";
-    cargoSha256 = "0q1qwji407pmklwb27z2jwyrvwyn8zkmrwm4nbcgk53ci4p6a17k";
+    sha256 = "00v8b6pbm5fry6bfkrfd7phn0ps8annqrw9k71m3pd26sxnn1q5f";
+    cargoSha256 = "0nd86gwlfjwdkcphpk8zvs95xxdm8p74wl7vcrx8fnvvfxnkpwmc";
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/pkgs/development/web/remarkjs/default.nix b/pkgs/development/web/remarkjs/default.nix
index 7859e7b036f..d9cc433fd84 100644
--- a/pkgs/development/web/remarkjs/default.nix
+++ b/pkgs/development/web/remarkjs/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "http://remarkjs.com";
+    homepage = "https://remarkjs.com";
     description = "A simple, in-browser, markdown-driven slideshow tool";
     maintainers = [];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/games/chocolate-doom/default.nix b/pkgs/games/chocolate-doom/default.nix
index 7eef6b5dff8..1c2a24de01d 100644
--- a/pkgs/games/chocolate-doom/default.nix
+++ b/pkgs/games/chocolate-doom/default.nix
@@ -1,17 +1,22 @@
-{ stdenv, autoreconfHook, pkgconfig, SDL, SDL_mixer, SDL_net, fetchurl }:
+{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "chocolate-doom-2.3.0";
-  src = fetchurl {
-    url = "https://github.com/chocolate-doom/chocolate-doom/archive/${name}.tar.gz";
-    sha256 = "0i57smxmbhxj0wgvxq845ba9zsn5nx5wmzkl71rdchyd4q5jmida";
+  pname = "chocolate-doom";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner = "chocolate-doom";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0ajzb767wyj8vzhjpsmgslw42b0155ji4alk26shxl7k5ijbzn0j";
   };
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ SDL SDL_mixer SDL_net ];
-  patchPhase = ''
+
+  postPatch = ''
     sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
   '';
 
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ SDL2 SDL2_mixer SDL2_net ];
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/games/enyo-doom/default.nix b/pkgs/games/enyo-doom/default.nix
index af002a690e4..ba07b50a1e7 100644
--- a/pkgs/games/enyo-doom/default.nix
+++ b/pkgs/games/enyo-doom/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitLab, cmake, qtbase }:
+{ mkDerivation, stdenv, fetchFromGitLab, cmake, qtbase }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "enyo-doom";
   version = "1.06.9";
 
diff --git a/pkgs/games/pro-office-calculator/default.nix b/pkgs/games/pro-office-calculator/default.nix
index bbdcd3f5850..7a0e3bec78d 100644
--- a/pkgs/games/pro-office-calculator/default.nix
+++ b/pkgs/games/pro-office-calculator/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, tinyxml-2, cmake, qtbase, qtmultimedia }:
-stdenv.mkDerivation rec {
+{ mkDerivation, stdenv, fetchFromGitHub, tinyxml-2, cmake, qtbase, qtmultimedia }:
+mkDerivation rec {
   version = "1.0.13";
   pname = "pro-office-calculator";
 
diff --git a/pkgs/misc/calaos/installer/default.nix b/pkgs/misc/calaos/installer/default.nix
index 81f00d59f69..6254c9c24f4 100644
--- a/pkgs/misc/calaos/installer/default.nix
+++ b/pkgs/misc/calaos/installer/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, qttools, qtbase }:
+{ mkDerivation, stdenv, fetchFromGitHub, qmake, qttools, qtbase }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "calaos_installer-3.1";
   version = "3.1";
 
diff --git a/pkgs/misc/emulators/firebird-emu/default.nix b/pkgs/misc/emulators/firebird-emu/default.nix
index 583e692e133..888cfea0204 100644
--- a/pkgs/misc/emulators/firebird-emu/default.nix
+++ b/pkgs/misc/emulators/firebird-emu/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, qtbase, qtdeclarative }:
+{ mkDerivation, stdenv, fetchFromGitHub, qmake, qtbase, qtdeclarative }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "firebird-emu";
   version = "1.4";
 
diff --git a/pkgs/misc/emulators/mednafen/default.nix b/pkgs/misc/emulators/mednafen/default.nix
index feedfc2603e..ea860af1fdf 100644
--- a/pkgs/misc/emulators/mednafen/default.nix
+++ b/pkgs/misc/emulators/mednafen/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, freeglut, libGLU, libGL, libcdio, libjack2
-, libsamplerate, libsndfile, libX11, SDL2, SDL2_net, zlib }:
+, libsamplerate, libsndfile, libX11, SDL2, SDL2_net, zlib, alsaLib }:
 
 stdenv.mkDerivation rec {
   pname = "mednafen";
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     libGLU libGL
     libcdio
     libjack2
+    alsaLib
     libsamplerate
     libsndfile
     libX11
diff --git a/pkgs/misc/emulators/yabause/default.nix b/pkgs/misc/emulators/yabause/default.nix
index d29d7b1e7b8..584a7b47dc7 100644
--- a/pkgs/misc/emulators/yabause/default.nix
+++ b/pkgs/misc/emulators/yabause/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, cmake, pkgconfig, qtbase, qt5, libGLU, libGL
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig, qtbase, qt5, libGLU, libGL
 , freeglut ? null, openal ? null, SDL2 ? null }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "yabause";
   version = "0.9.15";
 
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index f506efda449..1099ca84af5 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -12,6 +12,7 @@ let
       rev = "2cbe946206ec622d9d8cf2c99317f204c4d41885";
       sha256 = "0h62v9z5bh9xmaq22pqdb3z79i84a5rknqm68mjpy7nq7s3q42fa";
     };
+    meta.homepage = "https://github.com/vim-scripts/a.vim/";
   };
 
   ack-vim = buildVimPluginFrom2Nix {
@@ -23,6 +24,7 @@ let
       rev = "36e40f9ec91bdbf6f1adf408522a73a6925c3042";
       sha256 = "0yppr89hd1jyp0pj56hxdjbn32sr7pj3mihd18wxispvl5dqd6fm";
     };
+    meta.homepage = "https://github.com/mileszs/ack.vim/";
   };
 
   acp = buildVimPluginFrom2Nix {
@@ -34,6 +36,7 @@ let
       rev = "5c627cec37d0d3b1670cb250d84e176e8b0c644e";
       sha256 = "0h7s4nvxin7m2caka7g1hhlxj1bbiwsvw8s2lqwlh7nq43v23ghg";
     };
+    meta.homepage = "https://github.com/eikenb/acp/";
   };
 
   agda-vim = buildVimPluginFrom2Nix {
@@ -45,6 +48,7 @@ let
       rev = "3643fa185ebe3bf35cf690a4b3b90d36e36405b0";
       sha256 = "09lpg223l1s8zpsmbg1r18cnr7r3np32nsv185qgcv889mlildqn";
     };
+    meta.homepage = "https://github.com/derekelkins/agda-vim/";
   };
 
   alchemist-vim = buildVimPluginFrom2Nix {
@@ -56,17 +60,19 @@ let
       rev = "9fc2594deea196897997c31e68056b7977f13495";
       sha256 = "1mnghdw3yhqh1lzjqfrmwrvnx391dkayfzkgcpx7sx01hnvqc9ib";
     };
+    meta.homepage = "https://github.com/slashmili/alchemist.vim/";
   };
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-03-11";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "bbe5153fcb36dec9860ced33ae8ff0b5d76ac02a";
-      sha256 = "1xvmh66lgii98z6f4lk1mjs73ysrvs55xdlcmf224k3as822jmw0";
+      rev = "36e5337e30095afb10d02ef2ae362c8d6055e70d";
+      sha256 = "0mcc2d0a4fiv2a1q8z778jzjj7i71v64m2zswsvpdym062b65fk3";
     };
+    meta.homepage = "https://github.com/dense-analysis/ale/";
   };
 
   align = buildVimPluginFrom2Nix {
@@ -78,6 +84,7 @@ let
       rev = "787662fe90cd057942bc5b682fd70c87e1a9dd77";
       sha256 = "0acacr572kfh7jvavbw61q5pkwrpi1albgancma063rpax1pddgp";
     };
+    meta.homepage = "https://github.com/vim-scripts/align/";
   };
 
   ansible-vim = buildVimPluginFrom2Nix {
@@ -89,6 +96,7 @@ let
       rev = "ad76abd6bccfa1a5195d20f7964c6393fe1a9524";
       sha256 = "098jnybc11cxv2q8396hx9r814i5793y7a9kdl4ambpbvhm86vad";
     };
+    meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
 
   antonys-macro-repeater = buildVimPluginFrom2Nix {
@@ -100,6 +108,7 @@ let
       rev = "61784d86b2654f3e261b9cc33360c5197704e266";
       sha256 = "1cq5r091qbxjs9s12f7bb2fdm43gxwpnnh2l8nhj0n69jfk7gblw";
     };
+    meta.homepage = "https://github.com/ckarnell/antonys-macro-repeater/";
   };
 
   arcanist-vim = buildVimPluginFrom2Nix {
@@ -111,6 +120,7 @@ let
       rev = "bd59e799e838c8d946d33142104b2db625dc15d6";
       sha256 = "11v7gqa5rnv28q0i3d02g9sw22gkjn10afvjx7bg352d91knxn9m";
     };
+    meta.homepage = "https://github.com/solarnz/arcanist.vim/";
   };
 
   argtextobj-vim = buildVimPluginFrom2Nix {
@@ -122,6 +132,7 @@ let
       rev = "f3fbe427f7b4ec436416a5816d714dc917dc530b";
       sha256 = "1l4jh5hdmky1qj5z26jpnk49a6djjcvzyyr6pknrrgb8rzkiln48";
     };
+    meta.homepage = "https://github.com/vim-scripts/argtextobj.vim/";
   };
 
   ats-vim = buildVimPluginFrom2Nix {
@@ -133,6 +144,7 @@ let
       rev = "a17576687217a2e8066356cc211afb99b5de65e8";
       sha256 = "0dv60za39v2w5d9mbk1r263fqpv11bdfyqp39b0snw40f0kh92z0";
     };
+    meta.homepage = "https://github.com/vmchale/ats-vim/";
   };
 
   auto-git-diff = buildVimPluginFrom2Nix {
@@ -144,6 +156,7 @@ let
       rev = "a14d52b7ed7e7fb69bf1de9d363f3abdd3410b3a";
       sha256 = "0i0bnlxclh8pzanrxj428728mdx4wdy19fx499kiin87qr4r2hbn";
     };
+    meta.homepage = "https://github.com/hotwatermorning/auto-git-diff/";
   };
 
   auto-pairs = buildVimPluginFrom2Nix {
@@ -155,6 +168,7 @@ let
       rev = "39f06b873a8449af8ff6a3eee716d3da14d63a76";
       sha256 = "1hxf155cmavpxpbsxx6zk23hgl9grl6yrh165kp9bjvld9ng08ng";
     };
+    meta.homepage = "https://github.com/jiangmiao/auto-pairs/";
   };
 
   autoload_cscope-vim = buildVimPluginFrom2Nix {
@@ -166,6 +180,7 @@ let
       rev = "26f428f400d96d25a9d633e6314f6e1760923db1";
       sha256 = "150h6k4nd1msa21c0zxl68nwwq3qdmqi0d8h4as98rrz0b0lghn7";
     };
+    meta.homepage = "https://github.com/vim-scripts/autoload_cscope.vim/";
   };
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
@@ -177,17 +192,19 @@ let
       rev = "4ad0ce02b8efa3c6e014e224a34b67b927d31c88";
       sha256 = "0crg0gph8wmb412yvknh6ic42i3p5hd8c736rv61v52b2g0dgwxm";
     };
+    meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
 
   ayu-vim = buildVimPluginFrom2Nix {
     pname = "ayu-vim";
-    version = "2019-09-21";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "ayu-theme";
       repo = "ayu-vim";
-      rev = "9dab20b38335ed06738f251e92e3817182063759";
-      sha256 = "0m914bnrnv7gy49qzfdp1zl3a1h7zpicvh2xqdfqhp7h96psxwmx";
+      rev = "a3a2d2a4ce36e0f681236b3ab15043c0b09460b1";
+      sha256 = "06lhfwh8z178bgbbcz4mxjpk6zajz19x1jhaahbsqg3641y5pj0p";
     };
+    meta.homepage = "https://github.com/ayu-theme/ayu-vim/";
   };
 
   base16-vim = buildVimPluginFrom2Nix {
@@ -199,6 +216,7 @@ let
       rev = "6191622d5806d4448fa2285047936bdcee57a098";
       sha256 = "1qz21jizcy533mqk9wff1wqchhixkcfkysqcqs0x35wwpbri6nz8";
     };
+    meta.homepage = "https://github.com/chriskempson/base16-vim/";
   };
 
   bats-vim = buildVimPluginFrom2Nix {
@@ -210,6 +228,7 @@ let
       rev = "3c283f594ff8bc7fb0c25cd07ebef0f17385f94a";
       sha256 = "06f3hdf7y5gpwmc6inrhk938qmn7cr6mbk00amrnl1qjvk09givx";
     };
+    meta.homepage = "https://github.com/vim-scripts/bats.vim/";
   };
 
   bclose-vim = buildVimPluginFrom2Nix {
@@ -221,6 +240,7 @@ let
       rev = "99018b4a2dd18aea1cbd3aa23565b01a0f8c5b73";
       sha256 = "09a7g0nxn8cbnfz6za8q1p46kb5zbvxl80077hrjpnx4xc82xn2h";
     };
+    meta.homepage = "https://github.com/rbgrouleff/bclose.vim/";
   };
 
   bufexplorer = buildVimPluginFrom2Nix {
@@ -232,6 +252,7 @@ let
       rev = "29258f58357acc10c672585a9efe8913d756734d";
       sha256 = "00wjwk9yzfclrbd4p59b5wpl21s2vjs4ahn30xhpza93bk513wnq";
     };
+    meta.homepage = "https://github.com/jlanzarotta/bufexplorer/";
   };
 
   BufOnly-vim = buildVimPluginFrom2Nix {
@@ -243,6 +264,7 @@ let
       rev = "43dd92303979bdb234a3cb2f5662847f7a3affe7";
       sha256 = "1gvpaqvvxjma0dl1zai68bpv42608api4054appwkw9pgczkkcdl";
     };
+    meta.homepage = "https://github.com/vim-scripts/BufOnly.vim/";
   };
 
   calendar-vim = buildVimPluginFrom2Nix {
@@ -254,6 +276,7 @@ let
       rev = "55d0495ff03260d82a5c80365cb754871ce35460";
       sha256 = "0xi2g6x5lf8r36c5ld8pvz5c7n7jx3d6whwbk4gibmz6hlfrslwr";
     };
+    meta.homepage = "https://github.com/itchyny/calendar.vim/";
   };
 
   camelcasemotion = buildVimPluginFrom2Nix {
@@ -265,17 +288,19 @@ let
       rev = "de439d7c06cffd0839a29045a103fe4b44b15cdc";
       sha256 = "0yfsb0d9ly8abmc95nqcmr8r8ylif80zdjppib7g1qj1wapdhc69";
     };
+    meta.homepage = "https://github.com/bkad/camelcasemotion/";
   };
 
   caw-vim = buildVimPluginFrom2Nix {
     pname = "caw-vim";
-    version = "2020-03-24";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "caw.vim";
-      rev = "00ba51adaa5c2e6100a57e452fb6f5b6f1548f7a";
-      sha256 = "0jmy81l726in57l89874lmfbgqz2gir81xa0np9c7rqypwrwg5r1";
+      rev = "3c6b7d2448bd32bf998ae403c9c15d06ea641b36";
+      sha256 = "06ym0qhcvd9ajlj6cd4y391bgfiwclzhb3cvrbv723j8amdv1y1q";
     };
+    meta.homepage = "https://github.com/tyru/caw.vim/";
   };
 
   changeColorScheme-vim = buildVimPluginFrom2Nix {
@@ -287,6 +312,7 @@ let
       rev = "b041d49f828629d72f2232531a230d1ec5de2405";
       sha256 = "0pybhsg9k9252d4ifdc4gsar8lkmfzbvs6xkzqq1m6f35l9wqk09";
     };
+    meta.homepage = "https://github.com/vim-scripts/changeColorScheme.vim/";
   };
 
   CheckAttach = buildVimPluginFrom2Nix {
@@ -298,6 +324,7 @@ let
       rev = "8f0b1350431d1d34655a147e6f1cfe6cb5dda5f7";
       sha256 = "1z9a40nbdjd3pnp28nfsi2bijsbaiphc0ia816f5flkchn07gmmj";
     };
+    meta.homepage = "https://github.com/chrisbra/CheckAttach/";
   };
 
   clang_complete = buildVimPluginFrom2Nix {
@@ -309,6 +336,7 @@ let
       rev = "0b98d7533ad967aac3fc4c1a5b0508dafa8a676f";
       sha256 = "04mdhc1kbv66blkn6qn98iyj659dac4z49nmpf3anglz8dgcxjgc";
     };
+    meta.homepage = "https://github.com/xavierd/clang_complete/";
   };
 
   clighter8 = buildVimPluginFrom2Nix {
@@ -320,28 +348,31 @@ let
       rev = "839993b60dc4a19a58e4c7e7db1df04d911bb181";
       sha256 = "01r92idbym2p1hiqszrprrl1hrqzz2yhzv8n08m8gycd7m227cwg";
     };
+    meta.homepage = "https://github.com/bbchung/clighter8/";
   };
 
   coc-css = buildVimPluginFrom2Nix {
     pname = "coc-css";
-    version = "2019-06-25";
+    version = "2020-04-15";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-css";
-      rev = "235009ac2a92172cdae66987b172264230c04f74";
-      sha256 = "1i7bhiibcr2k5c0l79ddsfxirkhxs3cp9x83b4ys1zy2yaxljlw6";
+      rev = "41fe3122753b62c4416eb5e4ca4bef1cb3d3ebd2";
+      sha256 = "13xg0v2iwf8nrd1bba5nmwgav37fb8q4fqr5bsg3qxlbghpw0bbl";
     };
+    meta.homepage = "https://github.com/neoclide/coc-css/";
   };
 
   coc-denite = buildVimPluginFrom2Nix {
     pname = "coc-denite";
-    version = "2019-10-13";
+    version = "2020-04-17";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-denite";
-      rev = "803f8a2388fcf90881c13ff17da4eec01184401d";
-      sha256 = "1gxj2jdii6icgdmkhhsxshi02xbsad0697cixklf3wsqlxrj3px5";
+      rev = "50a573af21a9563f331f2711f3fd7a568c33907f";
+      sha256 = "06h3if5sn5sqgrq1ql1j7g5xy658mwywd7ri1hajzi8s3mb5lanq";
     };
+    meta.homepage = "https://github.com/neoclide/coc-denite/";
   };
 
   coc-emmet = buildVimPluginFrom2Nix {
@@ -353,6 +384,7 @@ let
       rev = "1e65237f65b94bd5f9376023f557a26c14c9d35a";
       sha256 = "16f3gdnprxw939zwdy7lzksj1qwlwfs174vk0nzf1d8yb04a7y2g";
     };
+    meta.homepage = "https://github.com/neoclide/coc-emmet/";
   };
 
   coc-eslint = buildVimPluginFrom2Nix {
@@ -364,28 +396,31 @@ let
       rev = "2f9de5cf232223f886b5e9711b0e9a5260f65db9";
       sha256 = "0q1sizzj6ac6gzfp4s7ka600pa9f2dhr17v14j98cdlmyp6pyfhz";
     };
+    meta.homepage = "https://github.com/neoclide/coc-eslint/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-04-04";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "e4f640215a55f1e3447aa872de7a4d83d003964c";
-      sha256 = "1q78qw6nagd0wis6ixg7y290692a9fsrjmrv9cdiv7l8q4whqync";
+      rev = "82e846d193856660be716c8b89e668aead06d665";
+      sha256 = "0rpxjxw51mks6jq6akw5sgl77px038gdgqa4yhpmlpidb679apg2";
     };
+    meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-git = buildVimPluginFrom2Nix {
     pname = "coc-git";
-    version = "2020-04-03";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-git";
-      rev = "54dba825875c6bd9e5a77121662d40c96bcedd99";
-      sha256 = "007j7kkhp8j7l65frkbmvldfjq2jirpz60n6ascjsy5vq471i7n4";
+      rev = "623a5351c8eca639e3cffee38f941426f2df2422";
+      sha256 = "1v5q9775602drj7dr1dhshd22jbz6kxmkacqhbnddjpw2drdfzv1";
     };
+    meta.homepage = "https://github.com/neoclide/coc-git/";
   };
 
   coc-go = buildVimPluginFrom2Nix {
@@ -397,6 +432,7 @@ let
       rev = "587501a4445c1edb5d5e10927c5f8274f0e0ea52";
       sha256 = "16cgdxn93zf0q5d80xb9c6khzgx02qvsjdaw3kf07qqsmdjvy4gj";
     };
+    meta.homepage = "https://github.com/josa42/coc-go/";
   };
 
   coc-highlight = buildVimPluginFrom2Nix {
@@ -408,6 +444,7 @@ let
       rev = "b4e82ebd5fe855d004dd481e2ecf2fa88faed284";
       sha256 = "06h64jq8cgj5hc19inidns046kkb76750179jsw7xv5zbp93ygap";
     };
+    meta.homepage = "https://github.com/neoclide/coc-highlight/";
   };
 
   coc-html = buildVimPluginFrom2Nix {
@@ -419,6 +456,7 @@ let
       rev = "8ae5d2832761b5868f69c67f33ce26f9edb26c65";
       sha256 = "1rf9qfimnbxjr5s55pzm8npixan5cz2v17g4j34f18i9ky6yyk0b";
     };
+    meta.homepage = "https://github.com/neoclide/coc-html/";
   };
 
   coc-imselect = buildVimPluginFrom2Nix {
@@ -430,6 +468,7 @@ let
       rev = "01442d2fb7d344122e59755f59782a0e1bf7d294";
       sha256 = "1vqx9yna66njdw1my15ac6djr3yvnb6das96nx12mpingnw85kky";
     };
+    meta.homepage = "https://github.com/neoclide/coc-imselect/";
   };
 
   coc-java = buildVimPluginFrom2Nix {
@@ -441,6 +480,7 @@ let
       rev = "e4dd6b744f7eb356afa8db7b958bdf5910b5ec6f";
       sha256 = "0fndkbmi84qgqfj6ny04wm05mnrvrg36bb04vk7zj90k8a51xrrr";
     };
+    meta.homepage = "https://github.com/neoclide/coc-java/";
   };
 
   coc-jest = buildVimPluginFrom2Nix {
@@ -452,6 +492,7 @@ let
       rev = "3fac1864ef1af87ee096f0ab6514a4b890363231";
       sha256 = "1z2sbzr84gh935553g6bfkpx7s4i37s200a1s9dqay9cq92jh7hy";
     };
+    meta.homepage = "https://github.com/neoclide/coc-jest/";
   };
 
   coc-json = buildVimPluginFrom2Nix {
@@ -463,28 +504,31 @@ let
       rev = "33ca64c00ee5c0d759a6f537b23971476b85f8e3";
       sha256 = "07mblxxvl95kfy0wwm5r75j6y3v8fvyh6cwiza5rg1z9dlw1xddw";
     };
+    meta.homepage = "https://github.com/neoclide/coc-json/";
   };
 
   coc-lists = buildVimPluginFrom2Nix {
     pname = "coc-lists";
-    version = "2020-03-03";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-lists";
-      rev = "21761f5e9a48baf3dbb6540ff180f6071c1ed8c6";
-      sha256 = "101n3cmhvm4hxznk5w4n7lbk552cwsyf28axa1d5rr838r3zg5wi";
+      rev = "f68a09974d8bd9a4474bfc7845c2e628919bb619";
+      sha256 = "1fcz7m1pbf69gnys9j777w77pxwsiwi1jdlcnb61c57xdrdcqr5d";
     };
+    meta.homepage = "https://github.com/neoclide/coc-lists/";
   };
 
   coc-metals = buildVimPluginFrom2Nix {
     pname = "coc-metals";
-    version = "2020-04-10";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "ckipp01";
       repo = "coc-metals";
-      rev = "675477fc9c95d87000eee343e7e478db5519654b";
-      sha256 = "1x66hp1hxlyacijj1gbffa6cqv8lg6mralxa6rkqyby6wgiydswy";
+      rev = "fdddbbdbe04cdb077b7a2006c295d7a95343c4bb";
+      sha256 = "0g0zqxmakwmjr9ii0v5rxiyvv3k909lzvkxkw0hyhpdkbpmzjkxl";
     };
+    meta.homepage = "https://github.com/ckipp01/coc-metals/";
   };
 
   coc-neco = buildVimPluginFrom2Nix {
@@ -496,6 +540,7 @@ let
       rev = "fe130c2c3b883f8b58f70f15bf36c73923faa3d9";
       sha256 = "1yzh3p1xx6k6rnr9skdvy5lsb7hz4kh2y537ill8a7770y936vn8";
     };
+    meta.homepage = "https://github.com/neoclide/coc-neco/";
   };
 
   coc-pairs = buildVimPluginFrom2Nix {
@@ -507,17 +552,19 @@ let
       rev = "79deeaabdc4f091c22f3dd67d439a0a336e8aa7e";
       sha256 = "1w6p2dk7yj8ldxg1qxh9zpn9ypm6gn66gi0vbax33wf5c0dmp0v9";
     };
+    meta.homepage = "https://github.com/neoclide/coc-pairs/";
   };
 
   coc-prettier = buildVimPluginFrom2Nix {
     pname = "coc-prettier";
-    version = "2020-04-03";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-prettier";
-      rev = "77e32b628e9b5fc6732f8b43ba6aca36a2e3f305";
-      sha256 = "13hfmdy0r4mlsvzvj0n0ik2dsxwkn58fkfqv6dgfxdc55nxwgkv0";
+      rev = "771bb16700e8123d7a114ff9c02a8c3ba1641108";
+      sha256 = "09srgkg1sqdh01ix767ssi4mp4p76g9am4pg8fzqdj3pdjyr2yk2";
     };
+    meta.homepage = "https://github.com/neoclide/coc-prettier/";
   };
 
   coc-python = buildVimPluginFrom2Nix {
@@ -529,6 +576,7 @@ let
       rev = "6a5104d18ae5ebf7d9b84af7c4a34c6ced62aee8";
       sha256 = "0l8zrb2bhv1apx2vp8gswqh7v64dxfd8124cggxfkkzdqyxr10w0";
     };
+    meta.homepage = "https://github.com/neoclide/coc-python/";
   };
 
   coc-r-lsp = buildVimPluginFrom2Nix {
@@ -540,6 +588,7 @@ let
       rev = "a1b97e36c601975a8d730b6965f25592b1ecd1e7";
       sha256 = "04g1kbgm8p0asrsibmg4w6wj8i2xzwc70g7rkcs2bj3pakbkvws6";
     };
+    meta.homepage = "https://github.com/neoclide/coc-r-lsp/";
   };
 
   coc-rls = buildVimPluginFrom2Nix {
@@ -551,6 +600,7 @@ let
       rev = "c899418e8fae4a8c3eb15fee48513ae050b11d60";
       sha256 = "0sipvs8r8i239l2334k4qnhwpaijwd524q598rp4ma34ry42c2xl";
     };
+    meta.homepage = "https://github.com/neoclide/coc-rls/";
   };
 
   coc-smartf = buildVimPluginFrom2Nix {
@@ -562,17 +612,19 @@ let
       rev = "d40714eab8e5fe26fac492ffd30e98cd1bfbdec5";
       sha256 = "0kfrq5hk8zn24cl7fiy48nyvd30a2dva93c61079axkdg9912yd7";
     };
+    meta.homepage = "https://github.com/neoclide/coc-smartf/";
   };
 
   coc-snippets = buildVimPluginFrom2Nix {
     pname = "coc-snippets";
-    version = "2020-04-09";
+    version = "2020-04-16";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-snippets";
-      rev = "62aa65069c92bf7753bb122559e8807ec304a6f4";
-      sha256 = "1fb884c841hpzhzv26fsq5yli3k5vk8yjq0l55zvlg3a2mxfpj6z";
+      rev = "21f65e0de83936f8db27ce1bc4a93251adfeef5a";
+      sha256 = "1ahh143yq6hb8f3xv5kvj3dy2017yzl9vn31gfabswvdmdjm37in";
     };
+    meta.homepage = "https://github.com/neoclide/coc-snippets/";
   };
 
   coc-solargraph = buildVimPluginFrom2Nix {
@@ -584,6 +636,7 @@ let
       rev = "231447aae26a0e88aa6d9e207a7354c4ca37d564";
       sha256 = "0amcx519r9j8jr6ckglywsjlyph3m5jq4qvbfwyir8ihxhxa4b0d";
     };
+    meta.homepage = "https://github.com/neoclide/coc-solargraph/";
   };
 
   coc-spell-checker = buildVimPluginFrom2Nix {
@@ -595,6 +648,7 @@ let
       rev = "4a8195f5f22d9d7b42998b7e3b846aa2aef7de52";
       sha256 = "1w8b9icwdam8ljprc8avs5pwdiwmx3j1jxsg03d1lvis9w5xm0cd";
     };
+    meta.homepage = "https://github.com/iamcco/coc-spell-checker/";
   };
 
   coc-stylelint = buildVimPluginFrom2Nix {
@@ -606,6 +660,7 @@ let
       rev = "288a372261cbc23ae4a6e26b1621c6e3218d00ad";
       sha256 = "1qir8diqnv1a78lzw9p3jsbni52gdg38rx1lj5i4iyff9282ir2x";
     };
+    meta.homepage = "https://github.com/neoclide/coc-stylelint/";
   };
 
   coc-tabnine = buildVimPluginFrom2Nix {
@@ -617,6 +672,7 @@ let
       rev = "442c829185ecab2268d1b9fd076c5286bbd39562";
       sha256 = "0as4b33nnp7anqbxkkja8lp37y4a74b3507zyk3gmmna0my1ca3r";
     };
+    meta.homepage = "https://github.com/neoclide/coc-tabnine/";
   };
 
   coc-tslint = buildVimPluginFrom2Nix {
@@ -628,6 +684,7 @@ let
       rev = "6128761577806d7047fa05d1a527945490d6316c";
       sha256 = "1vi4vrawknkd5wjyb0j143jbfis9vaanl219a7argirwjs057vpd";
     };
+    meta.homepage = "https://github.com/neoclide/coc-tslint/";
   };
 
   coc-tslint-plugin = buildVimPluginFrom2Nix {
@@ -639,17 +696,19 @@ let
       rev = "acc1356253a5088f630d9910b5fc13dc5d108bbc";
       sha256 = "1cjgimqgd70x5zhw641z6g4hc54vrkg3r4sscg092gkrdpkq3969";
     };
+    meta.homepage = "https://github.com/neoclide/coc-tslint-plugin/";
   };
 
   coc-tsserver = buildVimPluginFrom2Nix {
     pname = "coc-tsserver";
-    version = "2020-04-10";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-tsserver";
-      rev = "17fdfd9462bdc6780ab3087ca9293411ca147490";
-      sha256 = "1rwpjj24v1px8pkj21g36cl1nir6c4lhrsslf3i6hk41xa8jw64z";
+      rev = "1f46ed360e0cae124add5ff9c4a0718fccb66acb";
+      sha256 = "1fccyar9qmydj1ii7ixiwcnfrpsvk0q0xz3q4vr3mz34lmcj74rw";
     };
+    meta.homepage = "https://github.com/neoclide/coc-tsserver/";
   };
 
   coc-vetur = buildVimPluginFrom2Nix {
@@ -661,6 +720,7 @@ let
       rev = "314df846b6bc2be9b7c808ed949a1fd693bba402";
       sha256 = "14fmyrfmyk66wbfnbb2iwy7azjk10d8gyrv5p950aagmv8shif52";
     };
+    meta.homepage = "https://github.com/neoclide/coc-vetur/";
   };
 
   coc-vimtex = buildVimPluginFrom2Nix {
@@ -672,6 +732,7 @@ let
       rev = "0a4f8ee29afc4e1dcfdc8846f116a1db32fa9867";
       sha256 = "0z9kxm40kr8a5sa06vkg7xaai2n54y21xfkrsx774zzdkcrrkizk";
     };
+    meta.homepage = "https://github.com/neoclide/coc-vimtex/";
   };
 
   coc-wxml = buildVimPluginFrom2Nix {
@@ -683,6 +744,7 @@ let
       rev = "f02550939d33a0175c34186904c376bbae878e60";
       sha256 = "1448019dzdy55j4plhzlnp2qkfzk0zkqqs7kn94ndn60hn1x889m";
     };
+    meta.homepage = "https://github.com/neoclide/coc-wxml/";
   };
 
   coc-yaml = buildVimPluginFrom2Nix {
@@ -694,6 +756,7 @@ let
       rev = "338192a2434b96b139fb8c07d260da00b3100997";
       sha256 = "020jpsm9ss2v3x1g43m920w2yamv8khl7mg7wm4sx6qsl3rlfq4g";
     };
+    meta.homepage = "https://github.com/neoclide/coc-yaml/";
   };
 
   coc-yank = buildVimPluginFrom2Nix {
@@ -705,17 +768,19 @@ let
       rev = "6cb8bc7f2d41b9fb75c797c5805444badeff3dd9";
       sha256 = "0s28684531ihczg5nf2m3f8z1vx9fw4yllfq7jz8g7ifw922ddxb";
     };
+    meta.homepage = "https://github.com/neoclide/coc-yank/";
   };
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-04-10";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "09853cf2808904ed6eb93b207b5cec8dd69bfa34";
-      sha256 = "0i5jciwparwx1zgisa6l40xmamafl6syykb2hc953q1hfl24z9a5";
+      rev = "1cedc9a852cc7e246665ca1d662bd8978ac5405c";
+      sha256 = "1vqm9s68148715gb5x5xrhl5ajwi881d86hq7906lp7b8gk5d6is";
     };
+    meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
   colorizer = buildVimPluginFrom2Nix {
@@ -727,6 +792,7 @@ let
       rev = "afc1491e5b9c36305ce710bdad2b48f069141183";
       sha256 = "1dpiv9z8h6196acncyjhzd1qa56y17468fpxbfzrx5q2266sajc7";
     };
+    meta.homepage = "https://github.com/lilydjwg/colorizer/";
   };
 
   Colour-Sampler-Pack = buildVimPluginFrom2Nix {
@@ -738,6 +804,7 @@ let
       rev = "05cded87b2ef29aaa9e930230bb88e23abff4441";
       sha256 = "03v2r18sfgs0xbgy9p56pxfdg0lsk6m7wyr5hw63wm1nzpwiipg3";
     };
+    meta.homepage = "https://github.com/vim-scripts/Colour-Sampler-Pack/";
   };
 
   command-t = buildVimPluginFrom2Nix {
@@ -750,6 +817,7 @@ let
       sha256 = "0iim0lhib6fiainyb48ibl2qzgv8cmn9yinmd1k6i2y5y26wlhfy";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/wincent/command-t/";
   };
 
   committia-vim = buildVimPluginFrom2Nix {
@@ -761,6 +829,7 @@ let
       rev = "d367190c7ffe95f4ac5d30b2e9da4cd9898579b9";
       sha256 = "1yqsdy1mxc775qcrcl1yi930m2q6364mgjdj06vwnph1rg98w0ql";
     };
+    meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
   concealedyank-vim = buildVimPluginFrom2Nix {
@@ -772,6 +841,7 @@ let
       rev = "e7e65a395e0e6a266f3a808bc07441aa7d03ebbd";
       sha256 = "0z7i8dmwfjh6mcrmgrxv3j86ic867617fas9mv4gqsrhhvrrkzsb";
     };
+    meta.homepage = "https://github.com/chikatoike/concealedyank.vim/";
   };
 
   context_filetype-vim = buildVimPluginFrom2Nix {
@@ -783,6 +853,7 @@ let
       rev = "f200fe69939089da9e61bd9a3ff75b4ef7adc708";
       sha256 = "06pclan83yww5qf26fmqhby8iks0rzlxgpk254vxmkihbypvpa51";
     };
+    meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
 
   cosco-vim = buildVimPluginFrom2Nix {
@@ -794,6 +865,7 @@ let
       rev = "5752622192d9b27b3a5a274a5455613b56df6386";
       sha256 = "01byd7j4gl7zb1bh61p839ka04x2sm0rgwvbb126az7dr6gpclyf";
     };
+    meta.homepage = "https://github.com/lfilho/cosco.vim/";
   };
 
   cpsm = buildVimPluginFrom2Nix {
@@ -805,6 +877,7 @@ let
       rev = "900023c56dfdd200841d5c2f2f7000f332d2614f";
       sha256 = "1p1ry11f39fcz32i3b3p0p8n99qrnvrx4d7p0123123dj7wbxk3p";
     };
+    meta.homepage = "https://github.com/nixprime/cpsm/";
   };
 
   csapprox = buildVimPluginFrom2Nix {
@@ -816,17 +889,19 @@ let
       rev = "7981dac51d8b6776985aa08cb7b5ee98ea7f2ddd";
       sha256 = "08g4x6nnd6hkgm2daa5ihhz75pcdx3jzzv8rfjls80qajlhx5rf6";
     };
+    meta.homepage = "https://github.com/godlygeek/csapprox/";
   };
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-03-10";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "e7fb581122df54fe9770cc5e565bef450e7d2478";
-      sha256 = "1h15n1pdci34idks218r4kpwna1zb25hk8prsqzvjkj8mc6ch67y";
+      rev = "22e07247161c72adc029497b77d1b5d91b6b184b";
+      sha256 = "1p6zsqgbs9qr7dznq8nls8n405jjd0bsyzjrns9h8jxk6sf7n56j";
     };
+    meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
 
   ctrlp-cmatcher = buildVimPluginFrom2Nix {
@@ -838,6 +913,7 @@ let
       rev = "6c36334f106b6fd981d23e724e9a618734cab43a";
       sha256 = "1573kd6xf3n8sxlz2j4zadai4rnc7k3s9c54648yfzickwn57d8q";
     };
+    meta.homepage = "https://github.com/JazzCore/ctrlp-cmatcher/";
   };
 
   ctrlp-py-matcher = buildVimPluginFrom2Nix {
@@ -849,6 +925,7 @@ let
       rev = "cf63fd546f1e80dd4db3db96afbeaad301d21f13";
       sha256 = "0hs829x3vxv12y78hz5g4a5qpw05xf42dk0hxxk3ind77mnl1ir1";
     };
+    meta.homepage = "https://github.com/FelikZ/ctrlp-py-matcher/";
   };
 
   ctrlp-z = buildVimPluginFrom2Nix {
@@ -860,6 +937,7 @@ let
       rev = "d1a69ec623ce24b9a30fc8fe3cd468c322b03026";
       sha256 = "16nsj1g8lqmyizlb5ijwhf4dsmh0xv1kwqq6jxvhaf55vfga82yl";
     };
+    meta.homepage = "https://github.com/amiorin/ctrlp-z/";
   };
 
   ctrlp-vim = buildVimPluginFrom2Nix {
@@ -871,6 +949,7 @@ let
       rev = "585143acbe15f362852d78bd050baff3c12902d7";
       sha256 = "0ijkzlb08sc47cax4f328hlk68nscx5wdzhihpj106vrnfyrpyx3";
     };
+    meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
@@ -882,6 +961,7 @@ let
       rev = "4375ab9cc1fe0077c36a9aba5dd7145ce4a2fa6f";
       sha256 = "03cl55s4f2qa8hwag2w38gfc7mpp6jhy0vx7qsmkn24cqk1jvv2k";
     };
+    meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
 
   defx-git = buildVimPluginFrom2Nix {
@@ -893,6 +973,7 @@ let
       rev = "b5d0b842064ddb7a7af0e790f4648cb1909ed43f";
       sha256 = "0i8vi6zhnv088qc3f3wa5h4b17xnpvmr603srhg44zx2clcjblnr";
     };
+    meta.homepage = "https://github.com/kristijanhusak/defx-git/";
   };
 
   defx-icons = buildVimPluginFrom2Nix {
@@ -904,17 +985,19 @@ let
       rev = "2e4df3b6302da537ac7df28fbc0e0991c6c1aa0e";
       sha256 = "0wkn02z75pvfl0xrhgq80sw0qfidjg5s0zm5mij632pq3dm7axiq";
     };
+    meta.homepage = "https://github.com/kristijanhusak/defx-icons/";
   };
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-04-03";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "ceea32bb05ec33512c556054b91aff9c1d89f1cb";
-      sha256 = "0jfp9xvsin2p9zdd5hsrhkm6rjwdmf130xmis3zpm3n53nh88xh8";
+      rev = "1fb1d5f9b09ff6da815dfcdf3dfcb277605b9650";
+      sha256 = "0vih85hb4igy200lml7gvaiifkgydjqqjlh7ymcvg3sx5l6psapy";
     };
+    meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
 
   delimitMate = buildVimPluginFrom2Nix {
@@ -926,6 +1009,7 @@ let
       rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c";
       sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn";
     };
+    meta.homepage = "https://github.com/Raimondi/delimitMate/";
   };
 
   denite-extra = buildVimPluginFrom2Nix {
@@ -937,6 +1021,7 @@ let
       rev = "af18257544027ce89269dba70c12aba1f5b9e23c";
       sha256 = "0bmq9yhylfd3v6bfwvakw3pbsz5kk8wlmmql0yllqayp6410w25a";
     };
+    meta.homepage = "https://github.com/neoclide/denite-extra/";
   };
 
   denite-git = buildVimPluginFrom2Nix {
@@ -948,28 +1033,31 @@ let
       rev = "88b5323a6fc0ace197eed5205215d80f3b613f91";
       sha256 = "0b687i64hr8hll7pv7r1xz906b46cl2q62zm18ipikhkpva6iv13";
     };
+    meta.homepage = "https://github.com/neoclide/denite-git/";
   };
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-04-05";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "7a71d54b725344dad92939901f319223411dc102";
-      sha256 = "01wk4id1gffp7d88r5znwsay0wqkssdbw1rc3wjaax9a604j0v1j";
+      rev = "6d2174645f3a7ab790546940b02024d72296e4c1";
+      sha256 = "0dnnnwr01c4jgjyjnk4hivj4hiyar4j60fy2jc3l91aqd4m845vl";
     };
+    meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-04-12";
+    version = "2020-04-14";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "1c240e64703b67e0c7fcfb51b59d2bc276b668f5";
-      sha256 = "049xx1al44yj3r3wsqwi4z861dkcw06cgfw1czaiiy696dah5fn2";
+      rev = "d438a6f550910a5688481ff0251771ac7dd09245";
+      sha256 = "0p6kvl1pgf5d5rnag297dhjzzplmawvmi2j1r2m6p0732ls4qxrw";
     };
+    meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
 
   deoplete-clang = buildVimPluginFrom2Nix {
@@ -982,6 +1070,7 @@ let
       sha256 = "1wvk61f8ph2vpl6llzmir3qs3zwaw3lrphs16d1j7ljkdl3bk49k";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/deoplete-plugins/deoplete-clang/";
   };
 
   deoplete-dictionary = buildVimPluginFrom2Nix {
@@ -993,6 +1082,7 @@ let
       rev = "e0879df5dce25b96d6a2a6f52a1a5e41d12b5992";
       sha256 = "05p707b15fzhf0laqy3q0hi34vxpljy86cd5qvpjzx5h0ry32p09";
     };
+    meta.homepage = "https://github.com/deoplete-plugins/deoplete-dictionary/";
   };
 
   deoplete-emoji = buildVimPluginFrom2Nix {
@@ -1004,6 +1094,7 @@ let
       rev = "1dfa2da6ae3ee146ddfbfdba48cf45f0c1d57d7d";
       sha256 = "0drqbdmy8igq6rv7s2qlxsp391pydcynlr9gkaadzrg7pk4nlgsb";
     };
+    meta.homepage = "https://github.com/fszymanski/deoplete-emoji/";
   };
 
   deoplete-fish = buildVimPluginFrom2Nix {
@@ -1015,6 +1106,7 @@ let
       rev = "c4cfb934bb6ec69d7f1aff9d376b7d436bba5c93";
       sha256 = "19a6j4qsqljz1pmrn4fx8v1bhlfpqdq821fc2ibjd9h98f6dzi5p";
     };
+    meta.homepage = "https://github.com/ponko2/deoplete-fish/";
   };
 
   deoplete-github = buildVimPluginFrom2Nix {
@@ -1026,6 +1118,7 @@ let
       rev = "8e30256e50b3914a7e57ea4d5976b6a499fb936f";
       sha256 = "11n15nqi417sdcqgb6gkk6z4wrrdd8vdbd7wzqpg41140c73v5gm";
     };
+    meta.homepage = "https://github.com/SevereOverfl0w/deoplete-github/";
   };
 
   deoplete-go = buildVimPluginFrom2Nix {
@@ -1038,6 +1131,7 @@ let
       sha256 = "0zmx98kz6pxfpakizr8xm1nrv1rjr0frz19pkik29mk6aj2b2l08";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/deoplete-plugins/deoplete-go/";
   };
 
   deoplete-greek = buildVimPluginFrom2Nix {
@@ -1049,18 +1143,20 @@ let
       rev = "aecf3b2f8acfab20c93a6dc88d55260a0df04cbf";
       sha256 = "086qjbqps05zb2vnyb5q7a67i7al8mxxi86n0h5nsqdd0ws6qqhx";
     };
+    meta.homepage = "https://github.com/Inazuma110/deoplete-greek/";
   };
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-03-27";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "34e48ef9569536bee335d4e36849e739e31b8aeb";
-      sha256 = "1xlgfngaahbnwk6bfnmzv63jdz70w0lvqzpa5zbsyb5p52p4a58i";
+      rev = "42f4c24a951b0fb5e76a70e5234f16193a8a746d";
+      sha256 = "1incjz7xsh4cfxw06ff07830ywn0p99b1zmml8pkapbnh3x2bjgc";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
 
   deoplete-julia = buildVimPluginFrom2Nix {
@@ -1072,6 +1168,7 @@ let
       rev = "d60b976910685c99ca773c974e91c44eeda03a19";
       sha256 = "0x5cc9g1g1w9myr6p1ahb9gpn2abpbggjdk2bc903f62pkrapvjf";
     };
+    meta.homepage = "https://github.com/JuliaEditorSupport/deoplete-julia/";
   };
 
   deoplete-khard = buildVimPluginFrom2Nix {
@@ -1083,6 +1180,7 @@ let
       rev = "27221723a3bb8e480ff8cbe7f4be9ff38c076bf7";
       sha256 = "0g7sysm5lb8fpgagfg4565fz4rn16djdc4m2213ryq1s3crx40gw";
     };
+    meta.homepage = "https://github.com/nicoe/deoplete-khard/";
   };
 
   deoplete-lsp = buildVimPluginFrom2Nix {
@@ -1094,6 +1192,7 @@ let
       rev = "6aa2bfd73a181fa6b55021264c4a8a83237ce558";
       sha256 = "1bcvfbv046fk34vnc1ly8civ3sibqlzli8vm2548dfxc55wcwsys";
     };
+    meta.homepage = "https://github.com/Shougo/deoplete-lsp/";
   };
 
   deoplete-notmuch = buildVimPluginFrom2Nix {
@@ -1105,6 +1204,7 @@ let
       rev = "828b5acf1924f9869614e93855a0d8cc94f1a74d";
       sha256 = "1l2pfazhpkz26zwbjdafvhgvjj533kncm7dywlandsf3cibm8mv9";
     };
+    meta.homepage = "https://github.com/Valodim/deoplete-notmuch/";
   };
 
   deoplete-phpactor = buildVimPluginFrom2Nix {
@@ -1116,6 +1216,7 @@ let
       rev = "53e239effb8ff20fc0a192206e96d98d4f9001ad";
       sha256 = "14097r9fmyp9zxfgv0fj2s52qd1v5cxdckfg4zph7lg3yri1hx9p";
     };
+    meta.homepage = "https://github.com/kristijanhusak/deoplete-phpactor/";
   };
 
   deoplete-rust = buildVimPluginFrom2Nix {
@@ -1127,6 +1228,7 @@ let
       rev = "0a86e502113910c33448b337c4d50cabea120d25";
       sha256 = "0wsck83jns40ny3740vwjhc8g5bh6zl71hkirbjxy6n4xgixa54h";
     };
+    meta.homepage = "https://github.com/sebastianmarkow/deoplete-rust/";
   };
 
   deoplete-tabnine = buildVimPluginFrom2Nix {
@@ -1138,6 +1240,7 @@ let
       rev = "eef0e2340e19aea05fe5759b7da3b13cadd375c4";
       sha256 = "0q10zcjhjgak3w365pagd4ym5mmj3yd1lfsxv0d4wr4lp9a51sd7";
     };
+    meta.homepage = "https://github.com/tbodt/deoplete-tabnine/";
   };
 
   deoplete-ternjs = buildVimPluginFrom2Nix {
@@ -1149,6 +1252,7 @@ let
       rev = "5405e84a44fc4ab5234c9a253ad4aa2b161e5897";
       sha256 = "0684f9ci0y4wihf04z9r8x55cir02al4wp911dz0zg678z8w0yha";
     };
+    meta.homepage = "https://github.com/carlitux/deoplete-ternjs/";
   };
 
   deoplete-zsh = buildVimPluginFrom2Nix {
@@ -1160,17 +1264,19 @@ let
       rev = "92b7afc3804dd17a849b207e184359558ab8f444";
       sha256 = "0zsbkl82kny1vmfv06iz576xsclbik0xr7ndzpb0ddhw5nfnicfx";
     };
+    meta.homepage = "https://github.com/deoplete-plugins/deoplete-zsh/";
   };
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2020-04-10";
+    version = "2020-04-15";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "eb2307cfa84280041bc294e2091cee40a9183db8";
-      sha256 = "1zhz2d37gsbc2v2pz4k5m58r9d70x3ngbzcm6kxarm0farismxqg";
+      rev = "bbec852adee45a1500fa817a3c17889dc328cad0";
+      sha256 = "159ki94lb3n1kkmnd4cbmyc96xbpni45p7fgsml8x314j6iiihgk";
     };
+    meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
 
   dhall-vim = buildVimPluginFrom2Nix {
@@ -1182,6 +1288,7 @@ let
       rev = "607958520f8bd4308fe52937e211f6db4ad84cf3";
       sha256 = "0rnkmfrzsm4hg6ln8g8qj9ff8z2sk7cnf4gqrswychqhhkg1f817";
     };
+    meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
 
   direnv-vim = buildVimPluginFrom2Nix {
@@ -1193,6 +1300,7 @@ let
       rev = "5e75084465ad37dd0a4d4b1198b5ffa8978ae4e1";
       sha256 = "0vabsv98vwdjns3dliplg7x8ssyrin44af9jl248kdzkqw5fx445";
     };
+    meta.homepage = "https://github.com/direnv/direnv.vim/";
   };
 
   DoxygenToolkit-vim = buildVimPluginFrom2Nix {
@@ -1204,6 +1312,7 @@ let
       rev = "afd8663d36d2ec19d26befdb10e89e912d26bbd3";
       sha256 = "1za8li02j4nhqjjsyxg4p78638h5af4izim37zc0p1x55zr3i85r";
     };
+    meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/";
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
@@ -1215,6 +1324,7 @@ let
       rev = "31533d9c6c2723dfb4cf5691c83f330a3a0ccddd";
       sha256 = "1ygm4g90zv009iqv8k8n4930a7gpij5jxbz7dqq2dfyj4jn37rkf";
     };
+    meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
 
   editorconfig-vim = buildVimPluginFrom2Nix {
@@ -1227,6 +1337,7 @@ let
       sha256 = "015sfz2j0mfnfpm6zf8jnh0lm8943cpccjlbj7ks1dsvs36m056i";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
   };
 
   elm-vim = buildVimPluginFrom2Nix {
@@ -1238,6 +1349,7 @@ let
       rev = "165107a9fd2b20c8f050fc4f977b4e41c790b1e7";
       sha256 = "0gf7b49by0ybx3ndz7sz5dwcfnps4sz6wsr02lyarj8f8116ysy5";
     };
+    meta.homepage = "https://github.com/elmcast/elm-vim/";
   };
 
   emmet-vim = buildVimPluginFrom2Nix {
@@ -1250,6 +1362,7 @@ let
       sha256 = "0wjxx648lp11nqzgrdcbqikjs85knpvk594b9l25hadhd5awgahv";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/mattn/emmet-vim/";
   };
 
   emodeline = buildVimPluginFrom2Nix {
@@ -1261,6 +1374,7 @@ let
       rev = "19550795743876c2256021530209d83592f5924a";
       sha256 = "0x9y7rzbk6g8cq6jkn37wi95wzhq0abban6w10652v4kdmjrxrr0";
     };
+    meta.homepage = "https://github.com/vim-scripts/emodeline/";
   };
 
   ensime-vim = buildVimPluginFrom2Nix {
@@ -1272,17 +1386,19 @@ let
       rev = "caa734e84f002b25446c615706283a74edd4ecfe";
       sha256 = "190qq8r2zs7xzmsag7ygk6dvpav3cnzlc40lc3fvwmkfwgci5zg0";
     };
+    meta.homepage = "https://github.com/ensime/ensime-vim/";
   };
 
   falcon = buildVimPluginFrom2Nix {
     pname = "falcon";
-    version = "2020-03-02";
+    version = "2020-04-16";
     src = fetchFromGitHub {
       owner = "fenetikm";
       repo = "falcon";
-      rev = "b7ef5d0e1b15ce007ecf6adb94270c0d3468d90e";
-      sha256 = "1dcf6ic74r1lg0a3zqhfp1wk2f7j8nsykfvrk2d0j7waj2xsni4v";
+      rev = "da3468536410eb1ea59a0dd3054edf28d4577d8c";
+      sha256 = "1cvw3n8ysxnm3w0rvk1rks815ha5grca1p3c7bkas6klrplfhlsc";
     };
+    meta.homepage = "https://github.com/fenetikm/falcon/";
   };
 
   far-vim = buildVimPluginFrom2Nix {
@@ -1294,6 +1410,7 @@ let
       rev = "2a8a9c22237d224f2c24680901b61b6f9bffb061";
       sha256 = "0hk2p10cx36dz6vf22v4hx3shkkhqhkmxp6s1l517kkchh98m4bg";
     };
+    meta.homepage = "https://github.com/brooth/far.vim/";
   };
 
   fastfold = buildVimPluginFrom2Nix {
@@ -1305,6 +1422,7 @@ let
       rev = "5872cbe9d921eb3ec79dce14a1f492f44c1cbaaf";
       sha256 = "07mls0yczg2cmia2jn0s2rvgwl07yxlm4hyvjd941p1knvn88x8q";
     };
+    meta.homepage = "https://github.com/konfekt/fastfold/";
   };
 
   ferret = buildVimPluginFrom2Nix {
@@ -1316,6 +1434,7 @@ let
       rev = "24633d3047eb93013743b28b0ea735783c7850d9";
       sha256 = "06c3x3fqks30rzkj7z28qsgx9fcghz86ajc0cx3aai69xhgdipb5";
     };
+    meta.homepage = "https://github.com/wincent/ferret/";
   };
 
   file-line = buildVimPluginFrom2Nix {
@@ -1327,6 +1446,7 @@ let
       rev = "559088afaf10124ea663ee0f4f73b1de48fb1632";
       sha256 = "1w183g0hj8jvzm6m1jw7m6xz3x1dld8n8342vnycsh6hyzdcg3mg";
     };
+    meta.homepage = "https://github.com/bogado/file-line/";
   };
 
   flake8-vim = buildVimPluginFrom2Nix {
@@ -1339,17 +1459,19 @@ let
       sha256 = "14rv0p1vx4njlplkc72gz7r8sy9vc6n8x9l00zc777x5zzrhgz3g";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/andviro/flake8-vim/";
   };
 
   float-preview-nvim = buildVimPluginFrom2Nix {
     pname = "float-preview-nvim";
-    version = "2020-02-29";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "float-preview.nvim";
-      rev = "cbc23a28e8ea92d7c8dc22e727a62d42ef65086a";
-      sha256 = "1qv05qv89sbh1cafl2597lj95yv8yxpxm3sxbbclrls1962f7hgy";
+      rev = "3c2e230a3fe34b3a5fb74519797c29daa5a6a69a";
+      sha256 = "1i5wj1hqimzrw3bwsf76w8l8yp654pdn8f61kp0v98xdgkab007d";
     };
+    meta.homepage = "https://github.com/ncm2/float-preview.nvim/";
   };
 
   floobits-neovim = buildVimPluginFrom2Nix {
@@ -1361,6 +1483,7 @@ let
       rev = "29ab2ed4bd5c879df0bd6df313a776155eb98ad8";
       sha256 = "0bnncn3waw9birpd51j27hrzlriz8dk4naxdajmbwznwcnbkkgwx";
     };
+    meta.homepage = "https://github.com/floobits/floobits-neovim/";
   };
 
   forms = buildVimPluginFrom2Nix {
@@ -1372,6 +1495,7 @@ let
       rev = "b601e03fe0a3b8a43766231f4a6217e4492b4f75";
       sha256 = "19kp1i5c6jmnpbsap9giayqbzlv7vh02mp4mjvicqj9n0nfyay74";
     };
+    meta.homepage = "https://github.com/megaannum/forms/";
   };
 
   fugitive-gitlab-vim = buildVimPluginFrom2Nix {
@@ -1383,6 +1507,7 @@ let
       rev = "f3e56ff60fe3fb5ebc891cbe5fd12cd8c59ae6ef";
       sha256 = "0cx3zd7f09prxjfrj201139j00wsw66fx5crw6dhblf4z6mfpgnx";
     };
+    meta.homepage = "https://github.com/shumphrey/fugitive-gitlab.vim/";
   };
 
   fzf-vim = buildVimPluginFrom2Nix {
@@ -1394,6 +1519,7 @@ let
       rev = "f86ef1bce602713fe0b5b68f4bdca8c6943ecb59";
       sha256 = "0h3mlc4lvnlzg7pfrr09vrfn93lglzfp5ca6bl4jhsi63xw7x3ad";
     };
+    meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
 
   gen_tags-vim = buildVimPluginFrom2Nix {
@@ -1405,6 +1531,7 @@ let
       rev = "208cd0490547bc8f7615eea1b26e4635d2e60a96";
       sha256 = "00s1kxi1bsvz06z7x78kls0k6ncnbqdyz14fvdxxq82f6s1kdvdw";
     };
+    meta.homepage = "https://github.com/jsfaint/gen_tags.vim/";
   };
 
   gentoo-syntax = buildVimPluginFrom2Nix {
@@ -1416,17 +1543,19 @@ let
       rev = "42163237b57c56de9a24fe6549e46c805fab2bb3";
       sha256 = "1bg3ismjlp99drsfyrkjb137ypxmp0qpy8pp9ry9i8ljmnffbgal";
     };
+    meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2020-04-12";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "54553c5c915856d389a071aae5a2dba827727b7d";
-      sha256 = "0dpwvyf3vrrdiy0w2hplf656c8b1yqlcv495r7bz9ksbyqhsp70f";
+      rev = "bcbb1c9182fc1940d5e55bb716dc7621ab7c36bc";
+      sha256 = "1my9khiq1ssqkp0nixrzly0xlyla6bzdl3x9ky6687848cpriaz0";
     };
+    meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
 
   ghcmod-vim = buildVimPluginFrom2Nix {
@@ -1438,6 +1567,7 @@ let
       rev = "1d192d13d68ab59f9f46497a0909bf24a7b7dfff";
       sha256 = "0bzahgzagnf0a9zv86jhdf8nc3p0yfz9izv5n3lc8gc12cp47d0a";
     };
+    meta.homepage = "https://github.com/eagletmt/ghcmod-vim/";
   };
 
   gitignore-vim = buildVimPluginFrom2Nix {
@@ -1449,6 +1579,7 @@ let
       rev = "3ad6a15768945fd4fc1b013cec5d8c8e62c7bb87";
       sha256 = "0fg36hrkwqb3accqm7ihw1cjs64fxf73zk06gickdkzq0zn4yl8x";
     };
+    meta.homepage = "https://github.com/vim-scripts/gitignore.vim/";
   };
 
   gitv = buildVimPluginFrom2Nix {
@@ -1460,6 +1591,7 @@ let
       rev = "a73599c34202709eaa7da78f4fe32b97c6ef83f8";
       sha256 = "0hhamv2q3z8cy4n9yzxq0jvs2x8qx4wx6c2qpsk82jsnghmzipd6";
     };
+    meta.homepage = "https://github.com/gregsexton/gitv/";
   };
 
   goyo-vim = buildVimPluginFrom2Nix {
@@ -1471,6 +1603,7 @@ let
       rev = "6b6ed2734084fdbb6315357ddcaecf9c8e6f143d";
       sha256 = "1ywlz1hn54kxyp5q0angriaarimq7ys7m6sk6l4x8jr1g2yh0afz";
     };
+    meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
 
   gruvbox = buildVimPluginFrom2Nix {
@@ -1482,6 +1615,7 @@ let
       rev = "040138616bec342d5ea94d4db296f8ddca17007a";
       sha256 = "0qk2mqs04qlxkc1ldgjbiv1yisi2xl2b8svmjz0hdp9y2l5vfccw";
     };
+    meta.homepage = "https://github.com/morhetz/gruvbox/";
   };
 
   gruvbox-community = buildVimPluginFrom2Nix {
@@ -1493,6 +1627,7 @@ let
       rev = "f5711c15480b83378bde13306fa997057c0c81cd";
       sha256 = "0vx289a7av31dxm58c6kmfdnsrwnq1rzj5rwci2pqjdac8ds2qm0";
     };
+    meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
 
   gundo-vim = buildVimPluginFrom2Nix {
@@ -1504,6 +1639,7 @@ let
       rev = "99e6240340d9ba07b66c544daf44fa7caffbf7e7";
       sha256 = "0py35mmwnfl581isnbh33j3bjgghq17jnamdi1bg3akwyn1jyhqb";
     };
+    meta.homepage = "https://github.com/sjl/gundo.vim/";
   };
 
   gv-vim = buildVimPluginFrom2Nix {
@@ -1515,6 +1651,7 @@ let
       rev = "72dc64df998355b41a75ebfa32adfd08ed5c5819";
       sha256 = "01g4rnsh2n691n9a6gqhyzivr4mzlgz3i2mwb7vxpkp61yf755bb";
     };
+    meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
 
   haskell-vim = buildVimPluginFrom2Nix {
@@ -1526,6 +1663,7 @@ let
       rev = "b1ac46807835423c4a4dd063df6d5b613d89c731";
       sha256 = "1vqj3r2v8skffywwgv4093ww7fm540437j5qz7n8q8787bs5w0br";
     };
+    meta.homepage = "https://github.com/neovimhaskell/haskell-vim/";
   };
 
   hasksyn = buildVimPluginFrom2Nix {
@@ -1537,6 +1675,7 @@ let
       rev = "c434040bf13a17ca20a551223021b3ace7e453b9";
       sha256 = "09998lnfcshqis5m062wlag6y476imq9jday9gp4ayjjl1cp3cwx";
     };
+    meta.homepage = "https://github.com/travitch/hasksyn/";
   };
 
   hlint-refactor-vim = buildVimPluginFrom2Nix {
@@ -1548,6 +1687,7 @@ let
       rev = "fffb044ecef854a82c5c2efda252e09044ba03e0";
       sha256 = "0z8d31arfy9aidg1dwj5msnnx799d9r7njkgh51z695w6ayxn6p8";
     };
+    meta.homepage = "https://github.com/mpickering/hlint-refactor-vim/";
   };
 
   iceberg-vim = buildVimPluginFrom2Nix {
@@ -1559,6 +1699,7 @@ let
       rev = "1740235846c92666fe521e550a27fa47ebe5f5a3";
       sha256 = "13zf899kgwjhrksznz2212ywml7nnqwq2dyam39nzywf8msg8va6";
     };
+    meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
 
   idris-vim = buildVimPluginFrom2Nix {
@@ -1570,6 +1711,7 @@ let
       rev = "091ed6b267749927777423160eeab520109dd9c1";
       sha256 = "1zibar2vxcmai0k37ricwnimfdv1adxfbbvz871rc4l6h3q85if1";
     };
+    meta.homepage = "https://github.com/idris-hackers/idris-vim/";
   };
 
   Improved-AnsiEsc = buildVimPluginFrom2Nix {
@@ -1581,6 +1723,7 @@ let
       rev = "e1c59a8e9203fab6b9150721f30548916da73351";
       sha256 = "1smjs4kz2kmzprzp9az4957675nakb43146hshbby39j5xz4jsbz";
     };
+    meta.homepage = "https://github.com/vim-scripts/Improved-AnsiEsc/";
   };
 
   increment-activator = buildVimPluginFrom2Nix {
@@ -1592,6 +1735,7 @@ let
       rev = "bff5516da9103fb093ffc0dc993b8d535eacbceb";
       sha256 = "1swlv1mrck9s3n7fdg10c2nmlasf2fx8yfk01x3vii7l4aaa9w2y";
     };
+    meta.homepage = "https://github.com/nishigori/increment-activator/";
   };
 
   incsearch-easymotion-vim = buildVimPluginFrom2Nix {
@@ -1603,6 +1747,7 @@ let
       rev = "fcdd3aee6f4c0eef1a515727199ece8d6c6041b5";
       sha256 = "1bscr3xs1zggm9qzk1mb88fkc8qj6yrnkxmqwwyr75sf1xzy74mk";
     };
+    meta.homepage = "https://github.com/haya14busa/incsearch-easymotion.vim/";
   };
 
   incsearch-vim = buildVimPluginFrom2Nix {
@@ -1614,6 +1759,7 @@ let
       rev = "25e2547fb0566460f5999024f7a0de7b3775201f";
       sha256 = "05v0d9b5sm4d1bvhb01jk6s7brlli2xc16hvzr6gik1nm1ks6ai1";
     };
+    meta.homepage = "https://github.com/haya14busa/incsearch.vim/";
   };
 
   indentLine = buildVimPluginFrom2Nix {
@@ -1625,6 +1771,7 @@ let
       rev = "15aceda8c4eea621b66faa8673fca0b9fbe2f457";
       sha256 = "1icb1h811lp86hg4w8y8mmmsfm4c80n7m8r1wi58lnm60mjasas4";
     };
+    meta.homepage = "https://github.com/Yggdroot/indentLine/";
   };
 
   intero-neovim = buildVimPluginFrom2Nix {
@@ -1636,6 +1783,7 @@ let
       rev = "4ce2d154379f8c95b3819512a9b67ead5204ffd0";
       sha256 = "1na61qb31z80973jfi7ziw2zv6y73rm0bpfb6iqxjppmg4iqgl3i";
     };
+    meta.homepage = "https://github.com/parsonsmatt/intero-neovim/";
   };
 
   iosvkem = buildVimPluginFrom2Nix {
@@ -1647,6 +1795,7 @@ let
       rev = "08e36b649c83eece7edbd2e04e42e077aebc78eb";
       sha256 = "0jawl7fs6wl3ny9vsmzqv5pnkv5nn6wj1nx7hzgdl41183958pni";
     };
+    meta.homepage = "https://github.com/neutaaaaan/iosvkem/";
   };
 
   ir_black = buildVimPluginFrom2Nix {
@@ -1658,6 +1807,7 @@ let
       rev = "4e45f1cbcc9c04cf32c8681c6b3b4534a33610ed";
       sha256 = "13g9nqlqsjsxnrq37y33ldh41dw9q9dw07spfi7qwrskiwa0ayk7";
     };
+    meta.homepage = "https://github.com/twerth/ir_black/";
   };
 
   jdaddy-vim = buildVimPluginFrom2Nix {
@@ -1669,6 +1819,7 @@ let
       rev = "3e44c2e6d22e2d6fc94863379b5b4f5424537321";
       sha256 = "1ch12bffrs3gqqzdj9vh0i2azhc5d06i5vwds4rqcx797lqh7pzb";
     };
+    meta.homepage = "https://github.com/vim-scripts/jdaddy.vim/";
   };
 
   jedi-vim = buildVimPluginFrom2Nix {
@@ -1681,6 +1832,7 @@ let
       sha256 = "0yj1bsfn43crmfn0ylyzyz41z0vmvapl5cgm7k1rnbj96i7vifx7";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/davidhalter/jedi-vim/";
   };
 
   jellybeans-vim = buildVimPluginFrom2Nix {
@@ -1692,6 +1844,7 @@ let
       rev = "ef83bf4dc8b3eacffc97bf5c96ab2581b415c9fa";
       sha256 = "1zy3gjz5bna3l5a7k2ddqa0w7x8wbndy2vc9gmqfdsxdbhrgpvaz";
     };
+    meta.homepage = "https://github.com/nanotech/jellybeans.vim/";
   };
 
   Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix {
@@ -1703,6 +1856,7 @@ let
       rev = "164b457d87b65c6ca9e5998b69c6cd24248f62ac";
       sha256 = "14s26hlsdqys7br84l9wiyvhcy17s6966mhgr9n6sdqmhz6lc4nm";
     };
+    meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax/";
   };
 
   jq-vim = buildVimPluginFrom2Nix {
@@ -1714,17 +1868,19 @@ let
       rev = "6e056fa297ce58d45500b0937b8214400e9a50fa";
       sha256 = "0dfsym34xiza9221bdsr51jykcxmz8bnkzi846bqxxjxiw0p3yk1";
     };
+    meta.homepage = "https://github.com/vito-c/jq.vim/";
   };
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2020-03-11";
+    version = "2020-04-17";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "8ea33c2e5c3dd5cc82b2a86a9f7c97b8219aeb9c";
-      sha256 = "0i7n5fs0a717il71yny8dsrvyyskj9cahg1wnx8nrkyn3x06myhh";
+      rev = "34c24ee0f8476dfc573e22f9f6a6fe4eec466225";
+      sha256 = "0yy50yb28md5z2yzcaq45cchd8c44q12xvwcb2yh3r9nhgqhll2h";
     };
+    meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
   kotlin-vim = buildVimPluginFrom2Nix {
@@ -1736,6 +1892,7 @@ let
       rev = "b9fa728701a0aa0b9a2ffe92f10880348fc27a8f";
       sha256 = "1yqzxabhpc4jbdlzhsysp0vi1ayqg0vnpysvx4ynd9961q2fk3sz";
     };
+    meta.homepage = "https://github.com/udalov/kotlin-vim/";
   };
 
   lalrpop-vim = buildVimPluginFrom2Nix {
@@ -1747,6 +1904,7 @@ let
       rev = "7073eec8efdeff37cacd4bca378c28dad02c3c14";
       sha256 = "1xx6hlgrdbnk3d6rsn4jzbaqwankvnnmj4iilakaazddfaa0l6rr";
     };
+    meta.homepage = "https://github.com/qnighy/lalrpop.vim/";
   };
 
   LanguageClient-neovim = buildVimPluginFrom2Nix {
@@ -1758,6 +1916,7 @@ let
       rev = "dd45e31449511152f2127fe862d955237caa130f";
       sha256 = "1i1c98r9fg1mzyl15b3grk6v7s7frwadh86rr1ggz7aq1gwfy7dq";
     };
+    meta.homepage = "https://github.com/autozimu/LanguageClient-neovim/";
   };
 
   last256 = buildVimPluginFrom2Nix {
@@ -1769,6 +1928,7 @@ let
       rev = "d29320c1fe715b47edaa1be068201ea5a54ab0c0";
       sha256 = "16njh0p1j166dnf92110vlrj7gmrbsfkbkd8k6s9gfqjzbgd25jv";
     };
+    meta.homepage = "https://github.com/sk1418/last256/";
   };
 
   latex-box = buildVimPluginFrom2Nix {
@@ -1780,6 +1940,7 @@ let
       rev = "3c2901e12cb78bfb2be58ba4c62a488612550fe1";
       sha256 = "1z4mdy47cpwcdhvy8mr72vhlybxn1y59yd3ixf6ids1bzpkrd7zl";
     };
+    meta.homepage = "https://github.com/latex-box-team/latex-box/";
   };
 
   lean-vim = buildVimPluginFrom2Nix {
@@ -1791,6 +1952,7 @@ let
       rev = "2ace010eb32603a65af7921954a0594a02523c6b";
       sha256 = "0wq2lw4xx2qhz1xii9g7i6wz0y43b2icqrm6ypr9jmaac1rhiq7c";
     };
+    meta.homepage = "https://github.com/leanprover/lean.vim/";
   };
 
   lessspace-vim = buildVimPluginFrom2Nix {
@@ -1802,6 +1964,7 @@ let
       rev = "dc05cf6c3b67e3f8c87da2e565c5524872526316";
       sha256 = "154x6i2ncmcbc3snkzdcggq5m5zvlbjyry5lvr6n4qcvf65z5z44";
     };
+    meta.homepage = "https://github.com/thirtythreeforty/lessspace.vim/";
   };
 
   lexima-vim = buildVimPluginFrom2Nix {
@@ -1813,17 +1976,19 @@ let
       rev = "aa32e972b69230625989daa09ee5fd74a2d877ef";
       sha256 = "15cc09vb0yrasz76qkcqxhj95y1m6yrsx3wsn6khx39kp1bas0jd";
     };
+    meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
 
   lf-vim = buildVimPluginFrom2Nix {
     pname = "lf-vim";
-    version = "2019-10-11";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "ptzz";
       repo = "lf.vim";
-      rev = "8ffbae128b8887283b2d4b3a660e5be0de58ea0c";
-      sha256 = "0gzj9h31f4synjqfv8dhqihr6fgi3ar06xqjjl5fb4269p9964lb";
+      rev = "505b5b6350671e978f8e7392e9b0dadbd98752a7";
+      sha256 = "18g4hpdkhj747r7ga153nk8qc5rbnxx1avx1n2h1xsj5m75fdhjx";
     };
+    meta.homepage = "https://github.com/ptzz/lf.vim/";
   };
 
   lh-brackets = buildVimPluginFrom2Nix {
@@ -1835,6 +2000,7 @@ let
       rev = "dc91bb1e8ef45a0810d9c1ad412863977c8c4baf";
       sha256 = "1yjmykn92i54cajr5wrj7m0wvaigy106c3hm8ks30xn4zm970x03";
     };
+    meta.homepage = "https://github.com/LucHermitte/lh-brackets/";
   };
 
   lh-vim-lib = buildVimPluginFrom2Nix {
@@ -1846,6 +2012,7 @@ let
       rev = "3a8383f2efbd7496c17a70bf4593773f6149435f";
       sha256 = "0c6gnksyjyvsxqbp13q8bp9j4cg9x9m0kzrkx01p9k6wq297kpd9";
     };
+    meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
   };
 
   lightline-ale = buildVimPluginFrom2Nix {
@@ -1857,6 +2024,7 @@ let
       rev = "a1931d473d6600ccf7e426158b79c9df29463dda";
       sha256 = "1zmwi4b8sbl3zpzp8hlz7j3gg4p9628s0174pcd2n6mdkfh235g5";
     };
+    meta.homepage = "https://github.com/maximbaz/lightline-ale/";
   };
 
   lightline-bufferline = buildVimPluginFrom2Nix {
@@ -1868,6 +2036,7 @@ let
       rev = "17683bc5802de7f295f2583a15461e2bc662f98b";
       sha256 = "1rlamxwk2gm9pyxl9vym9w6rhgimzqa2hjghy3qdqwvif6w8ir6l";
     };
+    meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
   lightline-vim = buildVimPluginFrom2Nix {
@@ -1879,6 +2048,7 @@ let
       rev = "b8976d2e549b417e5d1c1594fb9034b749976cc0";
       sha256 = "1w86bg63qvigdva1g8w4lba63ghlsxfbjb0rqsxyxg6w7m9k6lhd";
     };
+    meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
 
   limelight-vim = buildVimPluginFrom2Nix {
@@ -1890,6 +2060,7 @@ let
       rev = "26e913a2e061195245bc62d24009ab67143a3c32";
       sha256 = "0bxmihv9i96k6pl37pzgri03vbvjwlp34rl4gkj8w2ajhhi6nsnn";
     };
+    meta.homepage = "https://github.com/junegunn/limelight.vim/";
   };
 
   lushtags = buildVimPluginFrom2Nix {
@@ -1901,6 +2072,7 @@ let
       rev = "fd7fa5a0162d9aa159559880d5ba4731e180eeaf";
       sha256 = "03saw1w5pybj6yywzi8hinciv18znimm7k0h34k4pqp5gi1jfaql";
     };
+    meta.homepage = "https://github.com/mkasa/lushtags/";
   };
 
   matchit-zip = buildVimPluginFrom2Nix {
@@ -1912,6 +2084,7 @@ let
       rev = "ced6c409c9beeb0b4142d21906606bd194411d1d";
       sha256 = "1s9c4lnsmbfm97bp22jrmcp5lga5ihx23lzqqncvv7rcizkvr3dm";
     };
+    meta.homepage = "https://github.com/vim-scripts/matchit.zip/";
   };
 
   mattn-calendar-vim = buildVimPluginFrom2Nix {
@@ -1923,6 +2096,7 @@ let
       rev = "de499b9525490b10edbd28fb8f0c4e81c6a6f20c";
       sha256 = "0xvvkq9zckmv9pnzvxg71fblly8lksfi736brbcwcvnszqif4b69";
     };
+    meta.homepage = "https://github.com/mattn/calendar-vim/";
   };
 
   mayansmoke = buildVimPluginFrom2Nix {
@@ -1934,6 +2108,7 @@ let
       rev = "168883af7aec05f139af251f47eadd5dfb802c9d";
       sha256 = "1xxcky7i6sx7f1q8xka4gd2xg78w6sqjvqrdwgrdzv93fhf82rpd";
     };
+    meta.homepage = "https://github.com/vim-scripts/mayansmoke/";
   };
 
   molokai = buildVimPluginFrom2Nix {
@@ -1945,6 +2120,7 @@ let
       rev = "c67bdfcdb31415aa0ade7f8c003261700a885476";
       sha256 = "1piszjr5kyw43ac1f0jh9z88g824xknshrkchbys9qxlz7pd831s";
     };
+    meta.homepage = "https://github.com/tomasr/molokai/";
   };
 
   ncm2 = buildVimPluginFrom2Nix {
@@ -1956,6 +2132,7 @@ let
       rev = "6596df4631ee1ee17351a78f382d4efd0b82c05e";
       sha256 = "16276cjviij92ypqj9148828k4dhiywam0dz07v3rikknak11cra";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2/";
   };
 
   ncm2-bufword = buildVimPluginFrom2Nix {
@@ -1967,6 +2144,7 @@ let
       rev = "1d42750114e47a31286268880affcd66c6ae48d5";
       sha256 = "14q76n5c70wvi48wm1alyckba71rp5300i35091ga197nkgphyaz";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2-bufword/";
   };
 
   ncm2-jedi = buildVimPluginFrom2Nix {
@@ -1978,6 +2156,7 @@ let
       rev = "b28bf6d054051cc1c7a6b148323d3adb9baa4ed5";
       sha256 = "07pq8akzvlb8hzksgxx1c50j09ia0xnszq1f83x75kqsjg5f6nhy";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2-jedi/";
   };
 
   ncm2-path = buildVimPluginFrom2Nix {
@@ -1989,6 +2168,7 @@ let
       rev = "84b1e6b5f28ced2245ff08e6694101f029fdfca8";
       sha256 = "0yqga8d423k2j6iknkyx1qs1shddpshi4sx78992sa15dax9d394";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2-path/";
   };
 
   ncm2-tmux = buildVimPluginFrom2Nix {
@@ -2000,6 +2180,7 @@ let
       rev = "17fa16ac1211af3d8e671f1591939d6f37bdd3bd";
       sha256 = "1g99vbrdz06i36gpa95crwixj61my7c9miy7mbpfbiy4zykf2wl2";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2-tmux/";
   };
 
   ncm2-ultisnips = buildVimPluginFrom2Nix {
@@ -2011,6 +2192,7 @@ let
       rev = "a7462f3b7036dce045a472d8ec9d8fb9fb090212";
       sha256 = "0f3qp33s5nh9nha9cgxggcmh7c1a5yrwvyyrszlh0x8nrzm1v1ma";
     };
+    meta.homepage = "https://github.com/ncm2/ncm2-ultisnips/";
   };
 
   neco-ghc = buildVimPluginFrom2Nix {
@@ -2022,6 +2204,7 @@ let
       rev = "682869aca5dd0bde71a09ba952acb59c543adf7d";
       sha256 = "1v7ibi4fp99s4lswz3v0gf4i0h5i5gpj05xpsf4cixwj2zgh206h";
     };
+    meta.homepage = "https://github.com/eagletmt/neco-ghc/";
   };
 
   neco-look = buildVimPluginFrom2Nix {
@@ -2033,6 +2216,7 @@ let
       rev = "4d7f1fd7e406c302fba2a1358017c5a76d0f9fc1";
       sha256 = "1brvzg15ni5j60wncpvxhs5k36wz83lhvfcnvja2l9yrngcgh6vr";
     };
+    meta.homepage = "https://github.com/ujihisa/neco-look/";
   };
 
   neco-syntax = buildVimPluginFrom2Nix {
@@ -2044,6 +2228,7 @@ let
       rev = "6c3862ac82d2c917fa8b4126832de7d3a909f1fe";
       sha256 = "1kmzlz6c5bs7f4dxgrdn4azwh55k6ghhyzy8jjdgj0wsb309y92k";
     };
+    meta.homepage = "https://github.com/Shougo/neco-syntax/";
   };
 
   neco-vim = buildVimPluginFrom2Nix {
@@ -2055,6 +2240,7 @@ let
       rev = "4fbc3f5f3a2b2d5299c388e2f1ffef04fcaf87ba";
       sha256 = "0lk5p2aihalcarsjnvn1yidgv0xqp1bk29wywsbp8ni964s0si39";
     };
+    meta.homepage = "https://github.com/Shougo/neco-vim/";
   };
 
   neocomplete-vim = buildVimPluginFrom2Nix {
@@ -2066,6 +2252,7 @@ let
       rev = "0f83788cb67e0743a3a9c8d3a3a6e52a01bdc6c2";
       sha256 = "1ydnb576qbdbij7ipciw0m46wbj45gj7xirpmqxazgp9y6b13isf";
     };
+    meta.homepage = "https://github.com/Shougo/neocomplete.vim/";
   };
 
   neodark-vim = buildVimPluginFrom2Nix {
@@ -2077,6 +2264,7 @@ let
       rev = "44919aa0bebfa60e93e653fdd2a81d1c75c2e721";
       sha256 = "1wz9ygfdg59jwi19l9njcxknf77azlx5nkf5q0ghk6zyv1mqwvc1";
     };
+    meta.homepage = "https://github.com/KeitaNakamura/neodark.vim/";
   };
 
   neoformat = buildVimPluginFrom2Nix {
@@ -2088,6 +2276,7 @@ let
       rev = "d02b169e70bd6d2b2365bf6cda721967616a30bf";
       sha256 = "1cya26wfqc7l7dqy854m4kwrq3w66knmn2cgviqh9cnsjzhwxs0d";
     };
+    meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
 
   neoinclude-vim = buildVimPluginFrom2Nix {
@@ -2099,6 +2288,7 @@ let
       rev = "5125e73de0a8b4f2c399e4896e21be1b8f7b3d39";
       sha256 = "0qw63xyvrxvdzx01k5nnsv3p8zmnd77cwbkk24pikqrscxw3ypsz";
     };
+    meta.homepage = "https://github.com/Shougo/neoinclude.vim/";
   };
 
   neomake = buildVimPluginFrom2Nix {
@@ -2110,6 +2300,7 @@ let
       rev = "d10e53956161176c7f8a1ef2899880d5384f47b0";
       sha256 = "0zv27bln0n687s0xm19nrk16i58hmxdhy26jmjh335zji0ydx27v";
     };
+    meta.homepage = "https://github.com/neomake/neomake/";
   };
 
   neomru-vim = buildVimPluginFrom2Nix {
@@ -2121,6 +2312,7 @@ let
       rev = "d9b92f73f7d9158e803d72f2baeb7da9ea30040e";
       sha256 = "04fic8s4g19kgml1pb5fd6yzhsscq8yrpwbmg8sb0lqjas2qpakv";
     };
+    meta.homepage = "https://github.com/Shougo/neomru.vim/";
   };
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
@@ -2132,6 +2324,7 @@ let
       rev = "2e72985f712f0d5cb707beba151555a1f0003630";
       sha256 = "1lvm37q9zq4a077f2zm9dfp8zfg5d3853bmlih6sc8d6i477kcmb";
     };
+    meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix {
@@ -2143,6 +2336,7 @@ let
       rev = "3aaf5e763410f57916227da407fd90726e19a612";
       sha256 = "0zkw2q2s7756p4xgf49v4lj8lrzw35x81h1wzia7d9k92d7ivwca";
     };
+    meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
   };
 
   NeoSolarized = buildVimPluginFrom2Nix {
@@ -2154,17 +2348,19 @@ let
       rev = "70609c44215c8d2c43ad8c631296caae08a9c8d4";
       sha256 = "0bxrm2vm3z1y37sm6m2hdn72g2sw31dx1xhmjvd0ng72cnp84d9k";
     };
+    meta.homepage = "https://github.com/icymind/NeoSolarized/";
   };
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-04-12";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "964745a9a8c2a61b876f3082fedcb321c415ab5e";
-      sha256 = "0pmim51nj2c4njp5b9wihmg208chwc1vrq83ccff0hbmdc1djr60";
+      rev = "e3ece229fc0f26cb114f629faa2dc979e16e8e8a";
+      sha256 = "1g823p6qvxvxv5l9f3lb0dyf9pzrr7i3qw8n1rqfs2w0xipj6arl";
     };
+    meta.homepage = "https://github.com/kassio/neoterm/";
   };
 
   neovim-fuzzy = buildVimPluginFrom2Nix {
@@ -2176,6 +2372,7 @@ let
       rev = "53383395befafce802c902c21b54847074454491";
       sha256 = "064qi6zv2hrzn91pvr31b9zj2q0k9vbkk5csdhw5y52q26p1gakq";
     };
+    meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/";
   };
 
   neovim-sensible = buildVimPluginFrom2Nix {
@@ -2187,6 +2384,7 @@ let
       rev = "e7ab7544f15e59de2d9a1b42f58e590938e496e7";
       sha256 = "06whnfvmzfdsx9gvkd2nxhx29939gjzibr2xadh54sj8ns646w58";
     };
+    meta.homepage = "https://github.com/jeffkreeftmeijer/neovim-sensible/";
   };
 
   neoyank-vim = buildVimPluginFrom2Nix {
@@ -2198,6 +2396,7 @@ let
       rev = "1829c6e426f829edea46660d0db08d4488010fcd";
       sha256 = "1y6fvxqpj3rwf1fmjib177lqzh3z7syp7bccn79g1j8177m515w6";
     };
+    meta.homepage = "https://github.com/Shougo/neoyank.vim/";
   };
 
   nerdcommenter = buildVimPluginFrom2Nix {
@@ -2209,17 +2408,19 @@ let
       rev = "c62e618a1ab5a50a4028e3296500ba29d9b033d8";
       sha256 = "0w4bxj423dxxkcxnfmipf8x5jfm058rq4g3m98wzcz5zbambv3qs";
     };
+    meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-04-10";
+    version = "2020-04-15";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "f767dd34a0bda0a6db8efa43257c90981947f0ab";
-      sha256 = "0m02yxs235jznf2y1hr6zj04fb3igra4lb8crgl3slsvdw3zndb1";
+      rev = "29a321d061032df5b2ec347b6b4b778f665305a6";
+      sha256 = "08gfmpikxz6j9hymf64fbxd1630x3gvkq72d2dmdfr9an2xxh6zm";
     };
+    meta.homepage = "https://github.com/preservim/nerdtree/";
   };
 
   nerdtree-git-plugin = buildVimPluginFrom2Nix {
@@ -2231,6 +2432,7 @@ let
       rev = "95e20577cd442ad6256aff9bb2e9c80db05c13f0";
       sha256 = "15i66mxvygs6xa2jvk7bqdagxx1lcvynmyb9g75whgbv7is80qn7";
     };
+    meta.homepage = "https://github.com/albfan/nerdtree-git-plugin/";
   };
 
   nim-vim = buildVimPluginFrom2Nix {
@@ -2242,6 +2444,7 @@ let
       rev = "88f5e708a739fb26be6364ab2fabadf9fffb8d7b";
       sha256 = "0ja8qx9c5g7k4phllvk3vz6s62iwpwsn40w6c32sybjs98jkrw7y";
     };
+    meta.homepage = "https://github.com/zah/nim.vim/";
   };
 
   nord-vim = buildVimPluginFrom2Nix {
@@ -2253,17 +2456,19 @@ let
       rev = "f06189a4c054fe8c22e46aca4d451e03456f2283";
       sha256 = "0gk4zq0gz3nnwfkldswg9bjpk0gf6d6mgfzcgvj0pnlbja6ass81";
     };
+    meta.homepage = "https://github.com/arcticicestudio/nord-vim/";
   };
 
   NrrwRgn = buildVimPluginFrom2Nix {
     pname = "NrrwRgn";
-    version = "2020-03-27";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "NrrwRgn";
-      rev = "f8b5c3c649fc12dd1181564f29ebc6c51e231126";
-      sha256 = "1xh2ds1y5gj07ycw3b5lw7av92q39wwrq13mz8j37jmnhw0ppbl4";
+      rev = "a558325a2d0cca810520ed2b62e0c0e543e97bf6";
+      sha256 = "1ngwyga0pslkw1d5qwz98zz8axfwc0mvxig5yp59gra9awgk6nw8";
     };
+    meta.homepage = "https://github.com/chrisbra/NrrwRgn/";
   };
 
   nvim-cm-racer = buildVimPluginFrom2Nix {
@@ -2275,6 +2480,7 @@ let
       rev = "2a8a4a49fa58c5dac9e0bed9511f6928930cacd2";
       sha256 = "1yljxwypgn91084yyicbc2qprn31ld7s4drvnddzczyhzq5m2gpx";
     };
+    meta.homepage = "https://github.com/roxma/nvim-cm-racer/";
   };
 
   nvim-completion-manager = buildVimPluginFrom2Nix {
@@ -2286,6 +2492,7 @@ let
       rev = "45a026afb8b309b3b80f2c1b5910f72a54a9b563";
       sha256 = "0znwgry4ill0nxm096hc8s9vf20rf9xcq3dz8y8h7xlqzzsycl7a";
     };
+    meta.homepage = "https://github.com/roxma/nvim-completion-manager/";
   };
 
   nvim-gdb = buildVimPluginFrom2Nix {
@@ -2297,6 +2504,7 @@ let
       rev = "9ea1cd2cd110a8efa40dc893036596b39f979a7a";
       sha256 = "10qcs59r27fkzk0pg90gywbrz7y7b4hvavbws5kx6fjx3h2mbfsh";
     };
+    meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-hs-vim = buildVimPluginFrom2Nix {
@@ -2308,17 +2516,19 @@ let
       rev = "5bc177a87c9575c4995df90a098d330fe6e02f75";
       sha256 = "14jgvkvakpy36md5si2a3rf2w869snb65inriq68xbk32bg5pg8q";
     };
+    meta.homepage = "https://github.com/neovimhaskell/nvim-hs.vim/";
   };
 
   nvim-lsp = buildVimPluginFrom2Nix {
     pname = "nvim-lsp";
-    version = "2020-04-10";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lsp";
-      rev = "b6dc2ae6a95051e93486224481b80cb5b446dcc3";
-      sha256 = "0nc47nig0bvbp3m246gjv06a32ysz20nmxs6pzga1klzm4mim5vl";
+      rev = "39b743b9b36be26a5e58278d7608fe456a0ad3f8";
+      sha256 = "15q7d0qxdvvn79rwy87aiynilxn8vcnym2w252x1p3s4wqsx1psi";
     };
+    meta.homepage = "https://github.com/neovim/nvim-lsp/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -2330,6 +2540,7 @@ let
       rev = "095f98aaa7265628a72cd2706350c091544b5602";
       sha256 = "09hass19v3wrqgxjcr3b59w462lp2nw533zwb1nnmiz99gx1znpx";
     };
+    meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/";
   };
 
   nvim-yarp = buildVimPluginFrom2Nix {
@@ -2341,6 +2552,7 @@ let
       rev = "b710bf4daccb603a423754794fb446e5fbb59576";
       sha256 = "16ma42niwsc066s991idfbwvm0dvwqwdr2zfkc3av10hyimxnzbb";
     };
+    meta.homepage = "https://github.com/roxma/nvim-yarp/";
   };
 
   nvimdev-nvim = buildVimPluginFrom2Nix {
@@ -2352,6 +2564,7 @@ let
       rev = "994ff5daf571ad02cc96436002411b4fb235c91f";
       sha256 = "07dx6qkxqpakl1hrqwhfjgdzcnl4j3j9qih0l20qn8p6askj3b2j";
     };
+    meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
   };
 
   onehalf = buildVimPluginFrom2Nix {
@@ -2363,6 +2576,7 @@ let
       rev = "fdcbffe3175c29bb78d19dcaf9b2a456482fcf1e";
       sha256 = "0zbmh3cf2lnn3mcqbz4s992v6kaddq9nj4xb1wxvgyqp7kjkpwql";
     };
+    meta.homepage = "https://github.com/sonph/onehalf/";
   };
 
   open-browser-github-vim = buildVimPluginFrom2Nix {
@@ -2374,6 +2588,7 @@ let
       rev = "db483ae17f02a8561e85b2071b90359a9a3bd18d";
       sha256 = "09x9lfyi9gfhy4m1vp6z1kxpvi31rr8dnlqhh6fgskkziiqch3jw";
     };
+    meta.homepage = "https://github.com/tyru/open-browser-github.vim/";
   };
 
   open-browser-vim = buildVimPluginFrom2Nix {
@@ -2385,6 +2600,7 @@ let
       rev = "57b894d0aa5f800220d25fdeeccf28d8a7f6ac89";
       sha256 = "0q87hna0irl431kmd4knblzkahrmw3mrnvw1cq19indfky85516v";
     };
+    meta.homepage = "https://github.com/tyru/open-browser.vim/";
   };
 
   palenight-vim = buildVimPluginFrom2Nix {
@@ -2396,6 +2612,7 @@ let
       rev = "f332f9efe73227a47c18bade892ac55682641733";
       sha256 = "0nd2hqvxnjnbsp17x666nwyy0s9j9b6igyfhl44p7lkci6560gwp";
     };
+    meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
   };
 
   papercolor-theme = buildVimPluginFrom2Nix {
@@ -2407,6 +2624,7 @@ let
       rev = "ddd09867ed4e020b3ba2eb47dc3ef365da5b0fed";
       sha256 = "1dhbnd99xs6l5alqhn9m1nynmr9sbvrqj2137l23ysisprl3rgmr";
     };
+    meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
   };
 
   pear-tree = buildVimPluginFrom2Nix {
@@ -2418,6 +2636,7 @@ let
       rev = "3bb209d9637d6bd7506040b2fcd158c9a7917db3";
       sha256 = "0n70rzw34lsnnprqna90ssqrka33qx3z0n2kj19ps8yp3j6lsxvk";
     };
+    meta.homepage = "https://github.com/tmsvg/pear-tree/";
   };
 
   peskcolor-vim = buildVimPluginFrom2Nix {
@@ -2429,6 +2648,7 @@ let
       rev = "cba4fc739bbebacd503158f6509d9c226651f363";
       sha256 = "15hw3casr5y3ckgcn6aq8vhk6g2hym41w51nvgf34hbj9fx1nvkq";
     };
+    meta.homepage = "https://github.com/andsild/peskcolor.vim/";
   };
 
   pig-vim = buildVimPluginFrom2Nix {
@@ -2440,6 +2660,7 @@ let
       rev = "60d8a0883d3e474e61af46b581a5ce3af65e9bb5";
       sha256 = "0az48a3slpzljb69d60cpahkshmdbss0snc8lmvf4yrc1gx8yncv";
     };
+    meta.homepage = "https://github.com/motus/pig.vim/";
   };
 
   plantuml-syntax = buildVimPluginFrom2Nix {
@@ -2451,6 +2672,7 @@ let
       rev = "25070c47cae8c7a9d62c8c09a1339e761448fbc4";
       sha256 = "1x2a1wnxs2qmv2zqgq2bmwskdp1i4ga0yjxjyziyr96p48m7dcjp";
     };
+    meta.homepage = "https://github.com/aklt/plantuml-syntax/";
   };
 
   pony-vim-syntax = buildVimPluginFrom2Nix {
@@ -2462,6 +2684,7 @@ let
       rev = "caa34b3d7a15d9bfbfbb2f5944c85eb1eddcfafc";
       sha256 = "0r2lv99hkm95dv8wy9rkrkcwz5wkmwggfwi5vakgw497l3a9jskr";
     };
+    meta.homepage = "https://github.com/dleonard0/pony-vim-syntax/";
   };
 
   PreserveNoEOL = buildVimPluginFrom2Nix {
@@ -2473,6 +2696,7 @@ let
       rev = "940e3ce90e54d8680bec1135a21dcfbd6c9bfb62";
       sha256 = "1726jpr2zf6jrb00pp082ikbx4mll3a877pnzs6i18f9fgpaqqgd";
     };
+    meta.homepage = "https://github.com/vim-scripts/PreserveNoEOL/";
   };
 
   prev_indent = buildVimPluginFrom2Nix {
@@ -2484,6 +2708,7 @@ let
       rev = "79e9b1b9a6895bfd15463c45595ca599987a4b23";
       sha256 = "03xqdwfkc7a84742ldsggi7ix99c7dhpmg6j13gkasyfk487ryh6";
     };
+    meta.homepage = "https://github.com/vim-scripts/prev_indent/";
   };
 
   psc-ide-vim = buildVimPluginFrom2Nix {
@@ -2495,6 +2720,7 @@ let
       rev = "5fb4e329e5c0c7d80f0356ab4028eee9c8bd3465";
       sha256 = "0gzbxsq6wh8d9z9vyrff4hdpc66yg9y8hnxq4kjrz9qrccc75c1f";
     };
+    meta.homepage = "https://github.com/frigoeu/psc-ide-vim/";
   };
 
   purescript-vim = buildVimPluginFrom2Nix {
@@ -2506,6 +2732,7 @@ let
       rev = "67ca4dc4a0291e5d8c8da48bffc0f3d2c9739e7f";
       sha256 = "1insh39hzbynr6qxb215qxhpifl5m8i5i0d09a3b6v679i7s11i8";
     };
+    meta.homepage = "https://github.com/purescript-contrib/purescript-vim/";
   };
 
   python-mode = buildVimPluginFrom2Nix {
@@ -2517,6 +2744,7 @@ let
       rev = "f94b0d7b21714f950f5878b430fbfde21c3b7ad9";
       sha256 = "0zxsa1agigzb9adrwq54pdyl984drdqzz3kkixaijkq77kkdvj0n";
     };
+    meta.homepage = "https://github.com/python-mode/python-mode/";
   };
 
   quick-scope = buildVimPluginFrom2Nix {
@@ -2528,6 +2756,7 @@ let
       rev = "ac80025b868bb6e52b9dda893246ee5f992612de";
       sha256 = "1pvw8d53dgm580r9n2qcx0w56g4kanvd00ny6c6l71hxw9lixnlb";
     };
+    meta.homepage = "https://github.com/unblevable/quick-scope/";
   };
 
   quickfix-reflector-vim = buildVimPluginFrom2Nix {
@@ -2539,6 +2768,7 @@ let
       rev = "8e9c05a110b80ab66fc8bc3d5fe9e6fa168aada6";
       sha256 = "1i8453z3s0xmbmbzk3kpxwvd42ar9v2m2gjqic9k7njpxw87czvs";
     };
+    meta.homepage = "https://github.com/stefandtw/quickfix-reflector.vim/";
   };
 
   quickfixstatus = buildVimPluginFrom2Nix {
@@ -2550,6 +2780,7 @@ let
       rev = "fd3875b914fc51bbefefa8c4995588c088163053";
       sha256 = "16vxhvyxq51y7wnx0c1fmdi2yb6kfr1pxijq65gxj8qwvbak2s3v";
     };
+    meta.homepage = "https://github.com/dannyob/quickfixstatus/";
   };
 
   rainbow = buildVimPluginFrom2Nix {
@@ -2561,6 +2792,7 @@ let
       rev = "c876f4bc6e737241d53669415f88cb5f2afd8ad9";
       sha256 = "1kmgm91q507qv9bvg37dn0lddzb8gwkmslajampnfjyfhbs0shgz";
     };
+    meta.homepage = "https://github.com/luochen1990/rainbow/";
   };
 
   rainbow_parentheses-vim = buildVimPluginFrom2Nix {
@@ -2572,6 +2804,7 @@ let
       rev = "eb8baa5428bde10ecc1cb14eed1d6e16f5f24695";
       sha256 = "1qw84imlhq4654mxazj7j3sp5g1j3yjxi496i08iix06dm15m5s7";
     };
+    meta.homepage = "https://github.com/kien/rainbow_parentheses.vim/";
   };
 
   random-vim = buildVimPluginFrom2Nix {
@@ -2583,6 +2816,7 @@ let
       rev = "b2d85eb24a38074eab37a5acf2a295e1f2ad8989";
       sha256 = "1lzy2cq4jcrsqyxlnbnd0y6j4mabm09bi7q22lf6vinqlb84w7sp";
     };
+    meta.homepage = "https://github.com/vim-scripts/random.vim/";
   };
 
   ranger-vim = buildVimPluginFrom2Nix {
@@ -2594,6 +2828,7 @@ let
       rev = "6def86f4293d170480ce62cc41f15448075d7835";
       sha256 = "0890rbmdw3p25cww6vsji7xrndcxsisfyv5przahpclk9fc9sxs8";
     };
+    meta.homepage = "https://github.com/rafaqz/ranger.vim/";
   };
 
   readline-vim = buildVimPluginFrom2Nix {
@@ -2605,17 +2840,19 @@ let
       rev = "48f04c651728e8a7a8352eec697801aa32348564";
       sha256 = "1vs91lkm9gwvp0bahx80ag6lw03r5x6kyih70l4sq8q0kydp5f13";
     };
+    meta.homepage = "https://github.com/ryvnf/readline.vim/";
   };
 
   Recover-vim = buildVimPluginFrom2Nix {
     pname = "Recover-vim";
-    version = "2019-06-04";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "Recover.vim";
-      rev = "491c7bab1632029318d682df927d62b298856db5";
-      sha256 = "18bdsa6y9cdf92qafp4mlc2f6ny3qx8wl8p3i9x7q46i89bn7cxc";
+      rev = "c84f07260f1e839bc7bfc2ab69bf4f3f4aaa423d";
+      sha256 = "1q87n2xz6p879ihijvhxs1iv9iyrqcbx7z8dkql0ivbf572q9iwh";
     };
+    meta.homepage = "https://github.com/chrisbra/Recover.vim/";
   };
 
   Rename = buildVimPluginFrom2Nix {
@@ -2627,6 +2864,7 @@ let
       rev = "b240f28d2ede65fa77cd99fe045efe79202f7a34";
       sha256 = "1d1myg4zyc281zcc1ba9idbgcgxndb4a0jwqr4yqxhhzdgszw46r";
     };
+    meta.homepage = "https://github.com/vim-scripts/Rename/";
   };
 
   ReplaceWithRegister = buildVimPluginFrom2Nix {
@@ -2638,6 +2876,7 @@ let
       rev = "832efc23111d19591d495dc72286de2fb0b09345";
       sha256 = "0mb0sx85j1k59b1zz95r4vkq4kxlb4krhncq70mq7fxrs5bnhq8g";
     };
+    meta.homepage = "https://github.com/vim-scripts/ReplaceWithRegister/";
   };
 
   riv-vim = buildVimPluginFrom2Nix {
@@ -2649,6 +2888,7 @@ let
       rev = "e26c3e8dce4c1332e802cde84f83e61ec8a13986";
       sha256 = "1da3iwrpy08rayrsf8v0ml4khlp9j5i4cffpv9j3iyalcbhk2m9g";
     };
+    meta.homepage = "https://github.com/gu-fan/riv.vim/";
   };
 
   robotframework-vim = buildVimPluginFrom2Nix {
@@ -2660,6 +2900,7 @@ let
       rev = "75d5b371a4da2a090a2872d55bd0dead013f334e";
       sha256 = "091ac5rq6f1a7j2q3dy9rc00vckv21m4wd29ijj63jannr02v5ad";
     };
+    meta.homepage = "https://github.com/mfukar/robotframework-vim/";
   };
 
   rtorrent-syntax-file = buildVimPluginFrom2Nix {
@@ -2671,17 +2912,19 @@ let
       rev = "885ca182c02bbbed4b62a3fcfe6fe62fa5b419ca";
       sha256 = "1vhvmwnwi6862cckl8dqr8pgy0inrr0c31lic89826yv7mfl9mbz";
     };
+    meta.homepage = "https://github.com/ccarpita/rtorrent-syntax-file/";
   };
 
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
-    version = "2020-03-31";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "rust-lang";
       repo = "rust.vim";
-      rev = "ce5f2b1c881de1b2101924dc5a19046399d74db2";
-      sha256 = "0zjzn091js0i76klk9al4gw1l2ads132mjl0nrdhbvl7ilypdajh";
+      rev = "2b916c8c8b3975988c13460918b46115f6a06802";
+      sha256 = "06a9liz3a7fyjcd7phpfzrpqnjjzm5ai3bb41wh4hdc5ic8lgrij";
     };
+    meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
 
   salt-vim = buildVimPluginFrom2Nix {
@@ -2693,6 +2936,7 @@ let
       rev = "6ca9e3500cc39dd417b411435d58a1b720b331cc";
       sha256 = "0r79bpl98xcsmkw6dg83cf1ghn89rzsr011zirk3v1wfxclri2c4";
     };
+    meta.homepage = "https://github.com/saltstack/salt-vim/";
   };
 
   self = buildVimPluginFrom2Nix {
@@ -2704,6 +2948,7 @@ let
       rev = "2ed666b547eddee6ae1fcc63babca4ba0b66a59f";
       sha256 = "1gcwn6i5i3msg7hrlzsnv1bs6pm4jz9cff8ppaz2xdj8xv9qy6fn";
     };
+    meta.homepage = "https://github.com/megaannum/self/";
   };
 
   semshi = buildVimPluginFrom2Nix {
@@ -2715,6 +2960,7 @@ let
       rev = "801d0c971d3d7291cf2fc22d74ac69155a71a279";
       sha256 = "0adq1qxlxd53ps5byjvqmzk266f3wbvqmw74dkx6vd41zqw38wfx";
     };
+    meta.homepage = "https://github.com/numirias/semshi/";
   };
 
   seoul256-vim = buildVimPluginFrom2Nix {
@@ -2726,6 +2972,7 @@ let
       rev = "cfc0167e546a40eb26ec2a0a0f1c141a8c1bcaf1";
       sha256 = "1z980hsmf6gcvd16ja67az131mrgv5fv6v0ivsh0ga8hwc4f9l6q";
     };
+    meta.homepage = "https://github.com/junegunn/seoul256.vim/";
   };
 
   shabadou-vim = buildVimPluginFrom2Nix {
@@ -2737,6 +2984,7 @@ let
       rev = "7d4bfed1ea8985ae125df3d1403cc19e252443e1";
       sha256 = "1kvik1yf7yjg9jdmdw38yhkksxg0n3nry02banwik7wgjnpvg870";
     };
+    meta.homepage = "https://github.com/osyo-manga/shabadou.vim/";
   };
 
   ShowMultiBase = buildVimPluginFrom2Nix {
@@ -2748,6 +2996,7 @@ let
       rev = "85a39fd12668ce973d3d9282263912b2b8f0d338";
       sha256 = "0hg5352ahzgh2kwqha5v8ai024fld93xag93hb53wjf5b8nzsz8i";
     };
+    meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
   };
 
   SimpylFold = buildVimPluginFrom2Nix {
@@ -2759,6 +3008,7 @@ let
       rev = "aa0371d9d708388f3ba385ccc67a7504586a20d9";
       sha256 = "1gjv78x2cgh79a04l411kdhkm53f93czs54p07kadpa9659z93ss";
     };
+    meta.homepage = "https://github.com/tmhedberg/SimpylFold/";
   };
 
   sky-color-clock-vim = buildVimPluginFrom2Nix {
@@ -2770,6 +3020,7 @@ let
       rev = "9d4232cc249083f3c5d2eb4e2848e491b52df4ca";
       sha256 = "1ln50rahb177vilzr4zc7v9znm8xfid1v8gddl83gr9srdbn2bbz";
     };
+    meta.homepage = "https://github.com/mopp/sky-color-clock.vim/";
   };
 
   smartpairs-vim = buildVimPluginFrom2Nix {
@@ -2781,6 +3032,7 @@ let
       rev = "dc754c29509b1a942552b3cfa348e4aae209322c";
       sha256 = "1pyynwz7wfbgccdxsyggzl0301qjj3wgyymah5spx8b3s42a6slj";
     };
+    meta.homepage = "https://github.com/gorkunov/smartpairs.vim/";
   };
 
   sourcemap-vim = buildVimPluginFrom2Nix {
@@ -2792,6 +3044,7 @@ let
       rev = "0dd82d40faea2fdb0771067f46c01deb41610ba1";
       sha256 = "1gcgnynallz420911fdfm0ccbv3zs78p69nnh2ls1r4vlfp7g350";
     };
+    meta.homepage = "https://github.com/chikatoike/sourcemap.vim/";
   };
 
   SpaceCamp = buildVimPluginFrom2Nix {
@@ -2803,6 +3056,7 @@ let
       rev = "58fc865f83b600ee8906fe35d02749dec6659607";
       sha256 = "0rv9a6gzn5q2ajsyfvsrybn7hyskckfa7wad4jr8xaylccn5r7x7";
     };
+    meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
   };
 
   Spacegray-vim = buildVimPluginFrom2Nix {
@@ -2814,6 +3068,7 @@ let
       rev = "69e8fefce04e2aff6a01cc4c295493359b0e4fa1";
       sha256 = "0ks5yd1vmpjw8ml7hqd2zz2d8mqkqhfw2ya73y1igf6as70za896";
     };
+    meta.homepage = "https://github.com/ajh17/Spacegray.vim/";
   };
 
   spacevim = buildVimPluginFrom2Nix {
@@ -2825,6 +3080,7 @@ let
       rev = "30142a518ba77feb22791b5cb2387d88b70c58f2";
       sha256 = "0m389cnpg17ca8s7vb9yrs40sxb56zg32lcpilnd63zfi7awgscg";
     };
+    meta.homepage = "https://github.com/ctjhoa/spacevim/";
   };
 
   sparkup = buildVimPluginFrom2Nix {
@@ -2836,6 +3092,7 @@ let
       rev = "6fbfceef890e705c47b42b27be743ffed6f9296e";
       sha256 = "17jgpvl879ik53rr3razfnbpfx63mzpp1rlvxxjsvvrk4g45dssm";
     };
+    meta.homepage = "https://github.com/chrisgeo/sparkup/";
   };
 
   splice-vim = buildVimPluginFrom2Nix {
@@ -2847,6 +3104,7 @@ let
       rev = "815a28e687fdf78b67e9b9cd4c21277bbe658873";
       sha256 = "0bh1gr2h6w872ql72rdlzpk5znl4lz01x6lgyf330sickizz5mvb";
     };
+    meta.homepage = "https://github.com/sjl/splice.vim/";
   };
 
   split-term-vim = buildVimPluginFrom2Nix {
@@ -2858,17 +3116,19 @@ let
       rev = "a4e28cab77ad07fc8a0ebb62a982768c02eb287c";
       sha256 = "12vrmbq1r8d6sgyxjwi0s856n1v4vjhrf8wpwq6l4ydmk1bnvjkb";
     };
+    meta.homepage = "https://github.com/vimlab/split-term.vim/";
   };
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-04-08";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "4aeb3b59c8a2d080960d17318498652e93e33776";
-      sha256 = "0gvchss74q4z54008hs8nylsr8xgz02wqshh7fqx3jbyhwb0zzms";
+      rev = "62d42e1ac5dcf8f3c70bd344d31300ee39d0e580";
+      sha256 = "1d0ik668lhkrd972brh99lizrfl249srj6y8i1ag4ykr99nmydqg";
     };
+    meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
   };
 
   starsearch-vim = buildVimPluginFrom2Nix {
@@ -2880,6 +3140,7 @@ let
       rev = "9b8cda1e628160c83846db5a30899a1a1ba5c1c9";
       sha256 = "1i1ygdqwhz4jqmz9lzjnx1a7s5chdqjsvgkmnd9x0s8ixqa41bpr";
     };
+    meta.homepage = "https://github.com/darfink/starsearch.vim/";
   };
 
   supertab = buildVimPluginFrom2Nix {
@@ -2891,6 +3152,7 @@ let
       rev = "40fe711e088e2ab346738233dd5adbb1be355172";
       sha256 = "0l5labq68kyprv63k1q35hz5ly0dd06mf2z202mccnix4mlxf0db";
     };
+    meta.homepage = "https://github.com/ervandew/supertab/";
   };
 
   sved = buildVimPluginFrom2Nix {
@@ -2902,6 +3164,7 @@ let
       rev = "3362db72447e8ac812c7299c15ecfc9f41341713";
       sha256 = "1r2nv069d6r2q6gbiz795x94mfjm9hnv05zka085hhq9a3yf1pgx";
     };
+    meta.homepage = "https://github.com/peterbjorgensen/sved/";
   };
 
   swift-vim = buildVimPluginFrom2Nix {
@@ -2913,17 +3176,19 @@ let
       rev = "c4053da88208cef5a32a5862694d36b73f6ce310";
       sha256 = "0awz0pf3awrwhay40wngfllpmmh24zwm02ra530x4n1hk74iwf2v";
     };
+    meta.homepage = "https://github.com/keith/swift.vim/";
   };
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2020-01-29";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "f3766538720116f099a8b1517f76ae2f094afd20";
-      sha256 = "1bzjav87fcibwlp8siqnx6x8wv8w3mwrrqrd5w19ny9scr5x2a65";
+      rev = "b3e2d8470fddc7f2b598f09023ebc5045a3fb1fd";
+      sha256 = "1ljsh0npbcv9g6l23z4jpba0bk1k5n13ix0p0rr22cipgzlxsbvh";
     };
+    meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
 
   tabmerge = buildVimPluginFrom2Nix {
@@ -2935,6 +3200,7 @@ let
       rev = "074e5f06f26e7108a0570071a0f938a821768c06";
       sha256 = "0prkyza1n49cdaslcr57w8zv15vw78mlqbzib2xipmawzjq02idq";
     };
+    meta.homepage = "https://github.com/vim-scripts/tabmerge/";
   };
 
   tabpagebuffer-vim = buildVimPluginFrom2Nix {
@@ -2946,6 +3212,7 @@ let
       rev = "4d95c3e6fa5ad887498f4cbe486c11e39d4a1fbc";
       sha256 = "1z6zlpzkhwy1p2pmx9qrwb91dp9v4yi8jrdvm1if2k79ij4sl08f";
     };
+    meta.homepage = "https://github.com/Shougo/tabpagebuffer.vim/";
   };
 
   tabular = buildVimPluginFrom2Nix {
@@ -2957,6 +3224,7 @@ let
       rev = "339091ac4dd1f17e225fe7d57b48aff55f99b23a";
       sha256 = "0jq91770wsp2waw7pywxjqx59v0vg54gfzirgcd85pg61w22bfla";
     };
+    meta.homepage = "https://github.com/godlygeek/tabular/";
   };
 
   tagbar = buildVimPluginFrom2Nix {
@@ -2968,6 +3236,7 @@ let
       rev = "679a9d9ac9579bd18225409d85ed4870fb6c9c62";
       sha256 = "1s4736104vfaj7rfcdzcnmgbnxxi0ngs07km0p2fi1m2zc68602l";
     };
+    meta.homepage = "https://github.com/majutsushi/tagbar/";
   };
 
   taglist-vim = buildVimPluginFrom2Nix {
@@ -2979,6 +3248,7 @@ let
       rev = "53041fbc45398a9af631a20657e109707a455339";
       sha256 = "07aa2gfc73lznyi7w7cybzanspza3p67cv5hxr21g43zhs5k9izd";
     };
+    meta.homepage = "https://github.com/vim-scripts/taglist.vim/";
   };
 
   targets-vim = buildVimPluginFrom2Nix {
@@ -2990,17 +3260,19 @@ let
       rev = "8d6ff2984cdfaebe5b7a6eee8f226a6dd1226f2d";
       sha256 = "192wq3x64x11nm2jhs4yrc627b0lh002dfnj72xrc7jak9vbdps9";
     };
+    meta.homepage = "https://github.com/wellle/targets.vim/";
   };
 
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2020-03-15";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "b9a075e36e9d8817b15e2edcdb8b6bf51a8d479c";
-      sha256 = "1vyg2n7s8981km05zpfhzcvb1adwc26l034w9w1bjil72fywdad0";
+      rev = "a20a34b0e3129314a820419234d8707a7cc9b872";
+      sha256 = "1ms3yy1b1mpjckqfam4bdz2yllxvzac3dfbs213c0hz6l6y20y4n";
     };
+    meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
   tender-vim = buildVimPluginFrom2Nix {
@@ -3012,6 +3284,7 @@ let
       rev = "f93b2f373cc21826524c94fbd1f3b3a4c55173d2";
       sha256 = "0bfns5vsbyh1s01s295hbf8h04n21cfkfp8b2r3cfr8mcvazpmpq";
     };
+    meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
 
   tern_for_vim = buildVimPluginFrom2Nix {
@@ -3023,6 +3296,7 @@ let
       rev = "994ffbe783da36d67786b6c66a4bf784c5eab300";
       sha256 = "0vpi5lqlyf6kcc0ha8hf3ch2h8v3awidgpwbrv9f3bqvyg4yhdcd";
     };
+    meta.homepage = "https://github.com/ternjs/tern_for_vim/";
   };
 
   thesaurus_query-vim = buildVimPluginFrom2Nix {
@@ -3034,6 +3308,7 @@ let
       rev = "830a20ec77780ebfe8d2a7e8c740ca4abb079f89";
       sha256 = "0kfqpjwashwf084cbz6dmhirk42a4n8d1zj17i086by17nx7qn1g";
     };
+    meta.homepage = "https://github.com/ron89/thesaurus_query.vim/";
   };
 
   thumbnail-vim = buildVimPluginFrom2Nix {
@@ -3045,6 +3320,7 @@ let
       rev = "7d65524dddaeed5629e6b9c8926c56ef8dd0c553";
       sha256 = "02707pl5dqfgkxx2i4wcfxx2zdpm86g5l4n4wn1dms35bcn2c8l8";
     };
+    meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
 
   tlib_vim = buildVimPluginFrom2Nix {
@@ -3056,6 +3332,7 @@ let
       rev = "a071b6d41b20069a3520e0d101194a752968973b";
       sha256 = "05swfvjyai32cbdpg10m3k2frkv017i1avf0nzilqavskvg04vi3";
     };
+    meta.homepage = "https://github.com/tomtom/tlib_vim/";
   };
 
   tmux-complete-vim = buildVimPluginFrom2Nix {
@@ -3067,6 +3344,7 @@ let
       rev = "7237d8d8d60af7916e3b546a9f4f396df95a1b21";
       sha256 = "05ypjahaf7gk4vjc8hhglmw7y8vyjxyhxq8sm0s3np05aw0gdbsc";
     };
+    meta.homepage = "https://github.com/wellle/tmux-complete.vim/";
   };
 
   todo-txt-vim = buildVimPluginFrom2Nix {
@@ -3079,6 +3357,7 @@ let
       sha256 = "08m9q5f2pz6gjp0vkmm7glfsrbnldxi1j59dm5d7any6y96xxd6v";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/freitass/todo.txt-vim/";
   };
 
   traces-vim = buildVimPluginFrom2Nix {
@@ -3090,6 +3369,7 @@ let
       rev = "4d3858eb060a1fd2213b075a707d39cbb118ae3e";
       sha256 = "0qny9z459x7hp5y43iivws2m312clacysdy1nnb3cr1fyhw9pflx";
     };
+    meta.homepage = "https://github.com/markonm/traces.vim/";
   };
 
   tslime-vim = buildVimPluginFrom2Nix {
@@ -3101,6 +3381,7 @@ let
       rev = "28e9eba642a791c6a6b044433dce8e5451b26fb0";
       sha256 = "1y5xikryv6851d0rjk9c64agawshp5208mwym6ma9ngs7s3s1l4x";
     };
+    meta.homepage = "https://github.com/jgdavey/tslime.vim/";
   };
 
   tsuquyomi = buildVimPluginFrom2Nix {
@@ -3112,6 +3393,7 @@ let
       rev = "85fffd5939c8fc5750b35a937b965af2ad5b0b15";
       sha256 = "1j5wdh0xa5yld4fy2msyjf1qvj8zx0iccc1bw63zzbrcl6rs30gx";
     };
+    meta.homepage = "https://github.com/Quramy/tsuquyomi/";
   };
 
   typescript-vim = buildVimPluginFrom2Nix {
@@ -3123,6 +3405,7 @@ let
       rev = "17d85d8051ba21283e62a9101734981e10b732fd";
       sha256 = "17z8ygns97wlnm4vq7kgkx3ymnbb2f6imxn02fc0iywkrhdqv7mj";
     };
+    meta.homepage = "https://github.com/leafgarland/typescript-vim/";
   };
 
   ultisnips = buildVimPluginFrom2Nix {
@@ -3134,6 +3417,7 @@ let
       rev = "ee31ea1c7d08ced8577120b4c1d55c5a05351a75";
       sha256 = "01nm3d95qjd2v3j9ln7w52i8bn2fgi5zms9078832w1x4iyb1mwn";
     };
+    meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
 
   undotree = buildVimPluginFrom2Nix {
@@ -3145,17 +3429,19 @@ let
       rev = "be23eacb2a63380bd79e207a738c728214ecc9d3";
       sha256 = "00zyvff32zp7pyjzkq8da9xhr378mlpi8gj717yfr9wbwwarwfd7";
     };
+    meta.homepage = "https://github.com/mbbill/undotree/";
   };
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2020-04-05";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "5a43fa177d6650cfb3224a3989f15e83999afa7f";
-      sha256 = "187hznxcrvb1j8dj2rrdlk3f1cfx0d0l3fnfabh1da0m9cjg4xbh";
+      rev = "ce061819e4304a9ff2f82779e12e5a30363ab47c";
+      sha256 = "0k9gmf2rdvnlfqqhjlk206wimlh5di3smmrr9cgz0djq5pd3r5jz";
     };
+    meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
 
   unite-vim = buildVimPluginFrom2Nix {
@@ -3167,6 +3453,7 @@ let
       rev = "5addeca429f64130d74d2f7cb8255afdb9e309d2";
       sha256 = "03bqljjc1h43qimm81mv8ywkx5388kd6clm2f7887diiww0fgvfi";
     };
+    meta.homepage = "https://github.com/Shougo/unite.vim/";
   };
 
   utl-vim = buildVimPluginFrom2Nix {
@@ -3178,6 +3465,7 @@ let
       rev = "67a6506a7a8a3847d00d3af3e2ed9707460d5ce5";
       sha256 = "0ax68nmzlka9193n2h82qzvhzv4dv6lm7rg3b1vhj2pn1r6ci6p4";
     };
+    meta.homepage = "https://github.com/vim-scripts/utl.vim/";
   };
 
   vader-vim = buildVimPluginFrom2Nix {
@@ -3189,6 +3477,7 @@ let
       rev = "6fff477431ac3191c69a3a5e5f187925466e275a";
       sha256 = "153cr1mrf5w5lyr8374brwx1z5yl9h0cnijxnd3xikh3yi3pbmwk";
     };
+    meta.homepage = "https://github.com/junegunn/vader.vim/";
   };
 
   vCoolor-vim = buildVimPluginFrom2Nix {
@@ -3200,6 +3489,7 @@ let
       rev = "8fc037e453f4c2274f590bde4f9fb56167b14e57";
       sha256 = "193cjxfha5xcpfjqqpyfa6xidys1zmmmwlcj7w2cxbr5j5bdnybm";
     };
+    meta.homepage = "https://github.com/KabbAmine/vCoolor.vim/";
   };
 
   verilog_systemverilog-vim = buildVimPluginFrom2Nix {
@@ -3211,17 +3501,19 @@ let
       rev = "c6f7ca14554196ae15a5fef9e568d69f04b9ff56";
       sha256 = "1hx9rgx44dhc449r0j6azkp1bm20n9c3fyb112w277a2jvf0a2c5";
     };
+    meta.homepage = "https://github.com/vhda/verilog_systemverilog.vim/";
   };
 
   vim = buildVimPluginFrom2Nix {
     pname = "vim";
-    version = "2020-03-03";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "ed490ae07168ecd1636b9fe0998baeb770b87cd9";
-      sha256 = "0b23r37az36kzlzr3k483r1yy142nmz09hc9wkwchs2zns30bqky";
+      rev = "6a8cd0f825c3d7b071ebd0dce81a7707ec0be652";
+      sha256 = "1qyqc7j8sdq3xnp871hgxdgxypkm8v5mfri2r89b0ydchrd15b2l";
     };
+    meta.homepage = "https://github.com/dracula/vim/";
   };
 
   vim-abolish = buildVimPluginFrom2Nix {
@@ -3233,6 +3525,7 @@ let
       rev = "7e4da6e78002344d499af9b6d8d5d6fcd7c92125";
       sha256 = "1n35igng3a6d5y4nh5pyb09s6khgcwbr3v0lnh33qb51cv4cnjh4";
     };
+    meta.homepage = "https://github.com/tpope/vim-abolish/";
   };
 
   vim-addon-actions = buildVimPluginFrom2Nix {
@@ -3244,6 +3537,7 @@ let
       rev = "540cae09832ba6abf9fc63c55781bf86584c33ac";
       sha256 = "011w5k09i01r9x64j20qj0f7d057m9wki2m8l2wds47l57hr3vz6";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-actions/";
   };
 
   vim-addon-async = buildVimPluginFrom2Nix {
@@ -3255,6 +3549,7 @@ let
       rev = "eca316a4480f68c2cb62128f3187dc7b2002afde";
       sha256 = "1lk8ma51dd0syi73vq5r4qk9cpy6cq3llizvh94hmxblfjpvrs7q";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-async/";
   };
 
   vim-addon-background-cmd = buildVimPluginFrom2Nix {
@@ -3266,6 +3561,7 @@ let
       rev = "abf2abf339652d2bc79da81f9d131edfe2755f5a";
       sha256 = "0csy68x686l3x5ancidxb5b6prg9k7ikybqzq3klx0gs5rmksfy4";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-background-cmd/";
   };
 
   vim-addon-commenting = buildVimPluginFrom2Nix {
@@ -3277,6 +3573,7 @@ let
       rev = "b7cf748ac1c9bf555cbd347589e3b7196030d20b";
       sha256 = "0alak8h33vada2ckb0v06y82qlib5mhyc2yswlv1rqh8ypzhq3mc";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-commenting/";
   };
 
   vim-addon-completion = buildVimPluginFrom2Nix {
@@ -3288,6 +3585,7 @@ let
       rev = "021c449a5ce1ce4ac0af5955e05b0279c1cc0e75";
       sha256 = "1ld059y2qwlc5bdfjm2p314s1qh31lxs54g944pw49r46s5nlslr";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-completion/";
   };
 
   vim-addon-errorformats = buildVimPluginFrom2Nix {
@@ -3299,6 +3597,7 @@ let
       rev = "bb83675cb0b8cc377fb0a79ba492ba2445674ba6";
       sha256 = "09cds33lb5gm69wv5plgidprm8nf52vvg9qdzpq9mihvinvj5qv7";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-errorformats/";
   };
 
   vim-addon-goto-thing-at-cursor = buildVimPluginFrom2Nix {
@@ -3310,6 +3609,7 @@ let
       rev = "44f0cba27013cfc1f4e46697ba6de30b2a128cf7";
       sha256 = "1s9021qnn95bzl8r7nx818j1kmjfjzg8xg07s071ic96lv40bcqp";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-goto-thing-at-cursor/";
   };
 
   vim-addon-local-vimrc = buildVimPluginFrom2Nix {
@@ -3321,6 +3621,7 @@ let
       rev = "6a27f95b35befa70cd0d049329cd0920566c764b";
       sha256 = "0n8lwl1gyak149p7jpgm0qbmfj8hcg8hirx3dxdhizw0yc47ws7h";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-local-vimrc/";
   };
 
   vim-addon-manager = buildVimPluginFrom2Nix {
@@ -3332,6 +3633,7 @@ let
       rev = "d9e865f3c2de5d9b7eabbc976f606cf1b89e29ea";
       sha256 = "0mgm2dqw8js9gajkrvm5n3k9m1grjxcrfc9xdzb3jxw1c0njdhcy";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-manager/";
   };
 
   vim-addon-mru = buildVimPluginFrom2Nix {
@@ -3343,6 +3645,7 @@ let
       rev = "e41e39bd9d1bf78ccfd8d5e1bc05ae5e1026c2bb";
       sha256 = "0q6rxr9nrp63kidr3m3c2z5sda4g813pzshg0scxkjr8dxwhzdqm";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-mru/";
   };
 
   vim-addon-mw-utils = buildVimPluginFrom2Nix {
@@ -3354,6 +3657,7 @@ let
       rev = "6aaf4fee472db7cbec6d2c8eea69fdf3a8f8a75d";
       sha256 = "1w99r6ck6gqg6b0fk9qj07q0b7p2qxav0ar6x294g34wsqij6xj5";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-mw-utils/";
   };
 
   vim-addon-nix = buildVimPluginFrom2Nix {
@@ -3365,6 +3669,7 @@ let
       rev = "3001a9db5f816dd7af11384f15415bddd146ef86";
       sha256 = "195z2yz09wirpqjpsha8x7qcr9is1q8qph4j0svws6qbqrkh8ryy";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-nix/";
   };
 
   vim-addon-other = buildVimPluginFrom2Nix {
@@ -3376,6 +3681,7 @@ let
       rev = "7a395970b8817296c11e1de8310194c4ae6e1f89";
       sha256 = "0sding7rc11imf5k9ki4h426wjiz8ywxa81v74xj3m23zm6l77sa";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-other/";
   };
 
   vim-addon-php-manual = buildVimPluginFrom2Nix {
@@ -3387,6 +3693,7 @@ let
       rev = "5f9810dd1f6e9f36a45f637ae6260ccff09256ff";
       sha256 = "1kc67f12wccqdza069b75lpcbqp4kv4r23i4mfz0ihwif5mfnhir";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-php-manual/";
   };
 
   vim-addon-signs = buildVimPluginFrom2Nix {
@@ -3398,6 +3705,7 @@ let
       rev = "17a49f293d18174ff09d1bfff5ba86e8eee8e8ae";
       sha256 = "0i4gfp30hmw1vqjl6zxjrgkca3ikdkcnjmma2mncjmcr6f59kjzy";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-signs/";
   };
 
   vim-addon-sql = buildVimPluginFrom2Nix {
@@ -3409,6 +3717,7 @@ let
       rev = "048a139af36829fce670c8ff80d3aad927557ee6";
       sha256 = "0ihm157sby6csdwsnw2gwh3jmm3prm1mxwgkx2hsfwlmpb1vwwm3";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-sql/";
   };
 
   vim-addon-syntax-checker = buildVimPluginFrom2Nix {
@@ -3420,6 +3729,7 @@ let
       rev = "739e5719b77c6aea3299c27fc1f4238ac54a8344";
       sha256 = "1rcn1ps06156nyglvxg6m7pn3vhvmnv5ad6kidp59hggyr5332i9";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-syntax-checker/";
   };
 
   vim-addon-toggle-buffer = buildVimPluginFrom2Nix {
@@ -3431,6 +3741,7 @@ let
       rev = "a1b38b9c5709cba666ed2d84ef06548f675c6b0b";
       sha256 = "1xq38kfdm36c34ln66znw841q797w5gm8bpq1x64bsf2h6n3ml03";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-toggle-buffer/";
   };
 
   vim-addon-xdebug = buildVimPluginFrom2Nix {
@@ -3442,17 +3753,19 @@ let
       rev = "45f26407305b4ce6f8f5f37d2b5e6e4354104172";
       sha256 = "1i64ppdfp2qqq7vw1jf160mj4ikc04v39iazdab83xmiqjsh8ixw";
     };
+    meta.homepage = "https://github.com/MarcWeber/vim-addon-xdebug/";
   };
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-04-10";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "a100e8967163d36ed624a71a313ce31cdd2b1151";
-      sha256 = "0nissvkwxqncwaw73kwk4fjnr0l43c7vj98l398pn3bkj8kgpns9";
+      rev = "eff4828b37d7f631aaec0465a315d627651b9037";
+      sha256 = "1rm8kd90sf00sdgr8pqcansyrmrwsqd4v1fkyy7zl9x2jgrxkbrh";
     };
+    meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
@@ -3464,17 +3777,19 @@ let
       rev = "3fb676b8729a98817f561ef1554c0ad1a514c96a";
       sha256 = "18bfw09ywmw10jiv37iw2ijf46jhj2yw5wndqdgn7k42gy1wk7p6";
     };
+    meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
 
   vim-android = buildVimPluginFrom2Nix {
     pname = "vim-android";
-    version = "2019-12-17";
+    version = "2020-04-17";
     src = fetchFromGitHub {
       owner = "hsanson";
       repo = "vim-android";
-      rev = "0849bcb6523d17a753fcaff8d40cbeed2d09cf65";
-      sha256 = "1z3x72aprp950chk754h0qpf5lxh2svzk39flks5fanxaggkpkng";
+      rev = "237827115523a1c39e3aed9f83bffb009b82a3c2";
+      sha256 = "06padj0r3h2lhrf17vlq8ky4q2z7a1jppfb9gjms0sddvjcis5fc";
     };
+    meta.homepage = "https://github.com/hsanson/vim-android/";
   };
 
   vim-anzu = buildVimPluginFrom2Nix {
@@ -3486,6 +3801,7 @@ let
       rev = "45b60d37cb9de90f6c89f7ddeacb7ae430ebcae2";
       sha256 = "1p5lh4xsv9xsl8kx0h1bg6iy0if4a69hvairq69p50ffka83pv00";
     };
+    meta.homepage = "https://github.com/osyo-manga/vim-anzu/";
   };
 
   vim-asterisk = buildVimPluginFrom2Nix {
@@ -3497,6 +3813,7 @@ let
       rev = "77e97061d6691637a034258cc415d98670698459";
       sha256 = "1bm99j4vskbgzfn09567qi0462dvjrpdkifc4hg24bi02bx9hjrj";
     };
+    meta.homepage = "https://github.com/haya14busa/vim-asterisk/";
   };
 
   vim-auto-save = buildVimPluginFrom2Nix {
@@ -3508,6 +3825,7 @@ let
       rev = "8c1d5dc919030aa712ad7201074ffb60961e9dda";
       sha256 = "0dj45g56n0q4advc9sgch11ghb2h5ahk601gndwy02a0937axjh2";
     };
+    meta.homepage = "https://github.com/907th/vim-auto-save/";
   };
 
   vim-autoformat = buildVimPluginFrom2Nix {
@@ -3519,6 +3837,7 @@ let
       rev = "555c956db3bdd8ae6f1aa5af1c5fd37eac749e6a";
       sha256 = "0dhxa9jrhahqs1wh41115w8r3xcczbjpvnj65ldzs7q9vc4n12xq";
     };
+    meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
 
   vim-automkdir = buildVimPluginFrom2Nix {
@@ -3530,6 +3849,7 @@ let
       rev = "dec143a8d9b266f73a42c63ede85bfc26280f79d";
       sha256 = "00ix0y1ijbis8pj7pf6gv2g5z2s7kxwlr0viybwrs0li5acym6jp";
     };
+    meta.homepage = "https://github.com/benizi/vim-automkdir/";
   };
 
   vim-bazel = buildVimPluginFrom2Nix {
@@ -3541,6 +3861,7 @@ let
       rev = "7c4987b4266d117a9f1d4c7fe7f4dfba33dfc8c8";
       sha256 = "182w8ibr34z86nmx6byabkah0q9fgrzml8m2ardaqzqjqr2ya5yg";
     };
+    meta.homepage = "https://github.com/bazelbuild/vim-bazel/";
   };
 
   vim-beancount = buildVimPluginFrom2Nix {
@@ -3552,6 +3873,7 @@ let
       rev = "8054352c43168ece62094dfc8ec510e347e19e3c";
       sha256 = "0fd4fbdmhapdhjr3f9bhd4lqxzpdwwvpf64vyqwahkqn8hrrbc4m";
     };
+    meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
 
   vim-better-whitespace = buildVimPluginFrom2Nix {
@@ -3563,6 +3885,7 @@ let
       rev = "8cf4b2175dd61416c2fe7d3234324a6c59d678de";
       sha256 = "1iga1xdzygnr9rhv0kw01nr3vahl2d486p06slmri2vy8ngzym0q";
     };
+    meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
   };
 
   vim-buffergator = buildVimPluginFrom2Nix {
@@ -3574,6 +3897,7 @@ let
       rev = "947b60dca4d4fc6a041a6ec84b17ca6736d1b916";
       sha256 = "0g7ymflzfdsj5793s32gc83bidqys5dxmw455viwpqgmgjxnar5c";
     };
+    meta.homepage = "https://github.com/jeetsukumaran/vim-buffergator/";
   };
 
   vim-bufferline = buildVimPluginFrom2Nix {
@@ -3585,6 +3909,7 @@ let
       rev = "651fd010aa9613a4b8636a4af8a2db0d22800262";
       sha256 = "0zls47a3v8dv3h63drbak1mxf3j2x3scvclk7bjwzlk2yp447das";
     };
+    meta.homepage = "https://github.com/bling/vim-bufferline/";
   };
 
   vim-bufkill = buildVimPluginFrom2Nix {
@@ -3596,6 +3921,7 @@ let
       rev = "795dd38f3cff69d0d8fe9e71847907e200860959";
       sha256 = "1nji86vjjbfjw4xy52yazq53hrlsr7v30xkx2awgiakz7ih0bdxa";
     };
+    meta.homepage = "https://github.com/qpkorr/vim-bufkill/";
   };
 
   vim-choosewin = buildVimPluginFrom2Nix {
@@ -3607,6 +3933,7 @@ let
       rev = "f91cdb9be92ce3bb9bccba16e8c659d5e8d7454f";
       sha256 = "1nq1vpwv6h5sc849y26nzkrmr9w3aj6w32apyih9kx0jh4ybv0xs";
     };
+    meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
 
   vim-clojure-highlight = buildVimPluginFrom2Nix {
@@ -3618,6 +3945,7 @@ let
       rev = "9ac6cb8fef04b2c243377adb671324a60952aee0";
       sha256 = "0fg3faj0fq7b8pqr0i33qdg2xfd5966lrjl1wkq6jcgvdqamhz0y";
     };
+    meta.homepage = "https://github.com/guns/vim-clojure-highlight/";
   };
 
   vim-clojure-static = buildVimPluginFrom2Nix {
@@ -3629,6 +3957,7 @@ let
       rev = "fae5710a0b79555fe3296145be4f85148266771a";
       sha256 = "0s98qrhv7xh7bvh8bm1vaxpw3n2mcxayay3k90ibgjrv1jpyvzx7";
     };
+    meta.homepage = "https://github.com/guns/vim-clojure-static/";
   };
 
   vim-closetag = buildVimPluginFrom2Nix {
@@ -3640,6 +3969,7 @@ let
       rev = "90cf416c03ed841ad7f3d44f4d6f3192f216176a";
       sha256 = "0kxba7s0s66m2k4j1v8iwq6m5j9843ha67br03dg7d9ya4qiyyw9";
     };
+    meta.homepage = "https://github.com/alvan/vim-closetag/";
   };
 
   vim-codefmt = buildVimPluginFrom2Nix {
@@ -3651,6 +3981,7 @@ let
       rev = "d3d8b8b6d73da3e1b19089f98a85901f0b652e2f";
       sha256 = "0r20cl6i4k7r2y5d8i3dbrxmn01mlnww2qgvjgmafa8nqd16gl57";
     };
+    meta.homepage = "https://github.com/google/vim-codefmt/";
   };
 
   vim-coffee-script = buildVimPluginFrom2Nix {
@@ -3662,6 +3993,7 @@ let
       rev = "9e3b4de2a476caeb6ff21b5da20966d7c67a98bb";
       sha256 = "1yzhyi12r508r2yjkzbcnddv3q4whjf3kchp23xs0snhwd9b981x";
     };
+    meta.homepage = "https://github.com/kchmck/vim-coffee-script/";
   };
 
   vim-colemak = buildVimPluginFrom2Nix {
@@ -3673,6 +4005,7 @@ let
       rev = "6ac1c0bf362845355c65dfeab9a9987c1b4dc7ec";
       sha256 = "1li7yc5vglrhf7w7i7gs2i7ihdb1bhx85basmpgqlf7790lv1599";
     };
+    meta.homepage = "https://github.com/kalbasit/vim-colemak/";
   };
 
   vim-colors-solarized = buildVimPluginFrom2Nix {
@@ -3684,6 +4017,7 @@ let
       rev = "528a59f26d12278698bb946f8fb82a63711eec21";
       sha256 = "05d3lmd1shyagvr3jygqghxd3k8a4vp32723fvxdm57fdrlyzcm1";
     };
+    meta.homepage = "https://github.com/altercation/vim-colors-solarized/";
   };
 
   vim-colorschemes = buildVimPluginFrom2Nix {
@@ -3695,6 +4029,7 @@ let
       rev = "9e7ab1cfec5d3db85aa1c4e87329fd869ecf94e9";
       sha256 = "0w9q41rl9g319xw2xs2yf34h3pdkq8a2pmh4gf9gb72v2k5z0dbm";
     };
+    meta.homepage = "https://github.com/flazz/vim-colorschemes/";
   };
 
   vim-colorstepper = buildVimPluginFrom2Nix {
@@ -3706,6 +4041,7 @@ let
       rev = "f23ba0d995d41508a2dc9471cf31d3d01a4b5f05";
       sha256 = "05ykxn0gmh8liz0zv5hb8df1ajggxp88izq3825m0yb3ma3k1jqs";
     };
+    meta.homepage = "https://github.com/jonbri/vim-colorstepper/";
   };
 
   vim-commentary = buildVimPluginFrom2Nix {
@@ -3717,17 +4053,19 @@ let
       rev = "f8238d70f873969fb41bf6a6b07ca63a4c0b82b1";
       sha256 = "09d81q9na7pvvrmxxqy09ffdzsx5v5dikinb704c9wm4ys2bidr9";
     };
+    meta.homepage = "https://github.com/tpope/vim-commentary/";
   };
 
   vim-cool = buildVimPluginFrom2Nix {
     pname = "vim-cool";
-    version = "2018-01-11";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "romainl";
       repo = "vim-cool";
-      rev = "06918c36b3396af0bec1e87e748a5dba55be87b9";
-      sha256 = "099sbjdk944bnivqgqgbjplczfm3k84583ryrmpqf3lgrq6pl8wr";
+      rev = "27ad4ecf7532b750fadca9f36e1c5498fc225af2";
+      sha256 = "1in44gf7hs978nc9328zh1kj3jh04kcinw0m8spcbgj079782sg8";
     };
+    meta.homepage = "https://github.com/romainl/vim-cool/";
   };
 
   vim-cpp-enhanced-highlight = buildVimPluginFrom2Nix {
@@ -3739,6 +4077,7 @@ let
       rev = "27e0ffc215b81fa5aa87eca396acd4421d36c060";
       sha256 = "15nyd4yssswyi4brkch09rca0qh7p77li4xyrivmiapkr4a60vwb";
     };
+    meta.homepage = "https://github.com/octol/vim-cpp-enhanced-highlight/";
   };
 
   vim-csharp = buildVimPluginFrom2Nix {
@@ -3750,17 +4089,19 @@ let
       rev = "b5982fc69bba7d507638a308d6875b031054280d";
       sha256 = "16sf3yqvd36b4rkrh6w7jskvlkrgymwa13xcvh586lmlc7g6ilcx";
     };
+    meta.homepage = "https://github.com/OrangeT/vim-csharp/";
   };
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2019-08-28";
+    version = "2020-04-16";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "1f9fe5c1f9e0a6bfc41b14d070f4d878d445ae96";
-      sha256 = "0h0hdv492kw0gs8kn62gyvs29pjwvvg8gbsisx4wpw6qa6w457hn";
+      rev = "741dd18a35e251ededc0687eea9b8d100d3b83b8";
+      sha256 = "1mjwyznprhhfmwi1djyjgxkqv9bwima1ysxa9782rk198j2n87vs";
     };
+    meta.homepage = "https://github.com/ap/vim-css-color/";
   };
 
   vim-cue = buildVimPluginFrom2Nix {
@@ -3772,6 +4113,7 @@ let
       rev = "482f0b1df03f59bbd1bf4bca99314770289a7f35";
       sha256 = "05c9amxpn4zyb8hvcnzrzq43r70hzs32rhn5rjaf5jflgmwaph0q";
     };
+    meta.homepage = "https://github.com/jjo/vim-cue/";
   };
 
   vim-cursorword = buildVimPluginFrom2Nix {
@@ -3783,6 +4125,7 @@ let
       rev = "b5f8a4b148b566626210d0c1f6b63036b62322bb";
       sha256 = "0a4gznfxmg7a62xwk4mmjcxykcgmm7mh5vv7n5hskxjczdrvl400";
     };
+    meta.homepage = "https://github.com/itchyny/vim-cursorword/";
   };
 
   vim-cute-python = buildVimPluginFrom2Nix {
@@ -3794,6 +4137,7 @@ let
       rev = "d7a6163f794500447242df2bedbe20bd751b92da";
       sha256 = "1jrfd6z84cdzn3yxdfp0xfxygscq7s8kbzxk37hf9cf5pl9ln0qf";
     };
+    meta.homepage = "https://github.com/ehamberg/vim-cute-python/";
   };
 
   vim-dadbod = buildVimPluginFrom2Nix {
@@ -3805,6 +4149,7 @@ let
       rev = "62646c502fac1455318933b9ea13ec5899ba7c84";
       sha256 = "0qpgx81xpwr3ab3ardp820aqifvxh2jsk1qw94p26q6iiab7kdcv";
     };
+    meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
 
   vim-dasht = buildVimPluginFrom2Nix {
@@ -3816,6 +4161,7 @@ let
       rev = "9c7484eaea26b8dd1edd8af21a38cee6c4ef4f49";
       sha256 = "1rjckipy7b4ygwvc1hbc24da1x3pwklbkfljrz16znlcm2y5q72k";
     };
+    meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
   vim-devicons = buildVimPluginFrom2Nix {
@@ -3827,6 +4173,7 @@ let
       rev = "58e57b6eeb407dba7ff6e607342c08c32b6fd398";
       sha256 = "0czkkhj2s9vjis5h4gajvnqc1nraxyqhyvzk2ndffhnzxvylhd5w";
     };
+    meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
 
   vim-diminactive = buildVimPluginFrom2Nix {
@@ -3838,6 +4185,7 @@ let
       rev = "6f2e14e6ff6a038285937c378ec3685e6ff7ee36";
       sha256 = "14jf5hh3v2f5wb10v09ygx15pxbwziv20pwv0fqkakxwf0vqwd50";
     };
+    meta.homepage = "https://github.com/blueyed/vim-diminactive/";
   };
 
   vim-dirdiff = buildVimPluginFrom2Nix {
@@ -3849,6 +4197,7 @@ let
       rev = "5bf29d8a41b4ec93e6c04b9d4a6c626b408c27c5";
       sha256 = "0nvhsj12gsjgncpmvg8b1qz675ghfcsib5gj22p7j4l4brih563r";
     };
+    meta.homepage = "https://github.com/will133/vim-dirdiff/";
   };
 
   vim-dirvish = buildVimPluginFrom2Nix {
@@ -3860,17 +4209,19 @@ let
       rev = "0a53fadc22ab6df6aed9cc580c9e498715870522";
       sha256 = "09q5xpc4xbskzxppp66ypzd5mnic5bcwxahmhb259ch9xs8qmrc6";
     };
+    meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2020-02-10";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "3757ddad87073a6ded8c34dfabb28c325acf6c02";
-      sha256 = "0vnkwn896v9dsqf329nvdik60bm6f0m0n32x3fqmzazqgqlx055j";
+      rev = "fe6a34322829e466a7e8ce710a6ac5eabddff9fd";
+      sha256 = "1m0dfm8r3d8zph6i4ln3jqfzs8hxbkq9rvxpij1m2vvk2hgy2nf5";
     };
+    meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
 
   vim-docbk = buildVimPluginFrom2Nix {
@@ -3882,6 +4233,7 @@ let
       rev = "6ac0346ce96dbefe982b9e765a81c072997f2e9e";
       sha256 = "1jnx39m152hf9j620ygagaydg6h8m8gxkr1fmxj6kgqf71jr0n9d";
     };
+    meta.homepage = "https://github.com/jhradilek/vim-docbk/";
   };
 
   vim-docbk-snippets = buildVimPluginFrom2Nix {
@@ -3893,6 +4245,7 @@ let
       rev = "b8604893f46f6c570a55efff733f0371ac8a805d";
       sha256 = "1qz3azgzv9718s2a6h8xw5nrvs4j776csmzsn9chvykdpx8rwim1";
     };
+    meta.homepage = "https://github.com/jhradilek/vim-snippets/";
   };
 
   vim-easy-align = buildVimPluginFrom2Nix {
@@ -3904,6 +4257,7 @@ let
       rev = "12dd6316974f71ce333e360c0260b4e1f81169c3";
       sha256 = "0gpfdla8shaf5ykgakrsf0h0w6ygvwcv3lfpnki24l790xhdi606";
     };
+    meta.homepage = "https://github.com/junegunn/vim-easy-align/";
   };
 
   vim-easygit = buildVimPluginFrom2Nix {
@@ -3915,6 +4269,7 @@ let
       rev = "9770370a35838f70eda91d0c3006d0563ccc8d2a";
       sha256 = "1a42s0nymakz20rjrpwmiqpnlndrkdakzbm53aclzcs61i9zq2k8";
     };
+    meta.homepage = "https://github.com/neoclide/vim-easygit/";
   };
 
   vim-easymotion = buildVimPluginFrom2Nix {
@@ -3926,6 +4281,7 @@ let
       rev = "dd7b4b526775bc8553e16bc402020573b04a948c";
       sha256 = "1dhhq1y6xa3q26irclad6254q89xpnxglfd92v3bq01l4p41zcqf";
     };
+    meta.homepage = "https://github.com/easymotion/vim-easymotion/";
   };
 
   vim-easytags = buildVimPluginFrom2Nix {
@@ -3937,6 +4293,7 @@ let
       rev = "72a8753b5d0a951e547c51b13633f680a95b5483";
       sha256 = "0i8ha1fa5d860b1mi0xp8kwsgb0b9vbzcg1bldzv6s5xd9yyi12i";
     };
+    meta.homepage = "https://github.com/xolox/vim-easytags/";
   };
 
   vim-eighties = buildVimPluginFrom2Nix {
@@ -3948,17 +4305,19 @@ let
       rev = "1a6ea42ead1e31524ec94cfefb6afc1d8dacd170";
       sha256 = "1yh1kny28c7f5qm52y7xd5aj4mycksfb0x1zvcb37c73ycdxc1v2";
     };
+    meta.homepage = "https://github.com/justincampbell/vim-eighties/";
   };
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2020-03-27";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "47d05df7fb41493821b0b3e3db72d5faeae3aecd";
-      sha256 = "10r9h359bla9gy48kvf2681r7gzk7klwrf488xc1rjzhgd41ila1";
+      rev = "80f0dae8da035d60a094fd1b04bd5b803790ac2b";
+      sha256 = "0gdsrbdj6nciivm4vaiq6kppky622r0wxjk4wb0q92j2dzadwsk9";
     };
+    meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
 
   vim-elm-syntax = buildVimPluginFrom2Nix {
@@ -3970,17 +4329,19 @@ let
       rev = "846a5929bff5795256fbca96707e451dbc755e36";
       sha256 = "05jkx4dbkb646wy0igqpwc55iamm0a030dswhirg6nyl3x6qzgym";
     };
+    meta.homepage = "https://github.com/andys8/vim-elm-syntax/";
   };
 
   vim-endwise = buildVimPluginFrom2Nix {
     pname = "vim-endwise";
-    version = "2019-11-13";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-endwise";
-      rev = "bf90d8be447de667f4532b934d1a70881be56dd8";
-      sha256 = "1czx891via5783yk222mhki94wvq75hxxp1xk1d5m90vwqb3azfn";
+      rev = "97180a73ad26e1dcc1eebe8de201f7189eb08344";
+      sha256 = "1f9nwp9qiip4alkpacwaq2nzsrx80a4cdwyrvajs6lrk48dv4hbw";
     };
+    meta.homepage = "https://github.com/tpope/vim-endwise/";
   };
 
   vim-eunuch = buildVimPluginFrom2Nix {
@@ -3992,6 +4353,7 @@ let
       rev = "33e875b31c8b811a0a47908884a5e2339106bbe8";
       sha256 = "1xadb22kd40swmww0qxmmkcpcq6viy8l167pjck5q32hfngll5d3";
     };
+    meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
 
   vim-exchange = buildVimPluginFrom2Nix {
@@ -4003,6 +4365,7 @@ let
       rev = "05d82b87711c6c8b9b7389bfb91c24bc4f62aa87";
       sha256 = "09fa156y8pxpzdbngifa7yzg1vjg1fjsgp1h9inj818zbig8mamb";
     };
+    meta.homepage = "https://github.com/tommcdo/vim-exchange/";
   };
 
   vim-expand-region = buildVimPluginFrom2Nix {
@@ -4014,6 +4377,7 @@ let
       rev = "966513543de0ddc2d673b5528a056269e7917276";
       sha256 = "0l30wjlk4vxr16f1njnvf8aw9yg9p9jisvcxbcg3znsq5q8ix6zv";
     };
+    meta.homepage = "https://github.com/terryma/vim-expand-region/";
   };
 
   vim-extradite = buildVimPluginFrom2Nix {
@@ -4025,6 +4389,7 @@ let
       rev = "58c77fffbb5d61eb0b87c8b4ef0ad78e9659d621";
       sha256 = "1mm2icx50q5iyhaz1dypnbqh14s1wsnw8skpxcm1klhqn02zk46f";
     };
+    meta.homepage = "https://github.com/int3/vim-extradite/";
   };
 
   vim-fetch = buildVimPluginFrom2Nix {
@@ -4036,17 +4401,19 @@ let
       rev = "dd674b50b261275a6a75cab6929b7bb7c5c4acba";
       sha256 = "1hadfzhzkq2n9k3yga55fsl6nm5mgl2vv975jnxsi4qgz9cwcsgr";
     };
+    meta.homepage = "https://github.com/wsdjeg/vim-fetch/";
   };
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2019-12-15";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "63d7209ff4f17d4bdc30f3478986b5bd44a47a3e";
-      sha256 = "1n0p70w0qmbxffchxsmklraxqrzg1q6bwnp4qhy0xjcz89p3fzx5";
+      rev = "6c968f26f0bd3dd04b18fad8761e0e9e1220a3da";
+      sha256 = "1x74j3gghfmqh1mxswzhb6d0zdll735r5lrgn4g3z580y15h37w5";
     };
+    meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
 
   vim-fish = buildVimPluginFrom2Nix {
@@ -4058,6 +4425,7 @@ let
       rev = "50b95cbbcd09c046121367d49039710e9dc9c15f";
       sha256 = "1yvjlm90alc4zsdsppkmsja33wsgm2q6kkn9dxn6xqwnq4jw5s7h";
     };
+    meta.homepage = "https://github.com/dag/vim-fish/";
   };
 
   vim-flagship = buildVimPluginFrom2Nix {
@@ -4069,6 +4437,7 @@ let
       rev = "e522bd0ffb0e329f695ead7d4288a6245ff22410";
       sha256 = "0vqkdzd7b204kbinn12jk306kc9bn2f0yaifj49swd0g8hv6dk4b";
     };
+    meta.homepage = "https://github.com/tpope/vim-flagship/";
   };
 
   vim-flake8 = buildVimPluginFrom2Nix {
@@ -4080,6 +4449,7 @@ let
       rev = "0c7cf6dc038223b44e3c0a702fe2acf997768e8a";
       sha256 = "14k1b7gjj1sh40qsf4wxbn0dymmc4jvsrd9pacsr6li273aiy6gq";
     };
+    meta.homepage = "https://github.com/nvie/vim-flake8/";
   };
 
   vim-flatbuffers = buildVimPluginFrom2Nix {
@@ -4091,6 +4461,7 @@ let
       rev = "ecd75c33576d982f3c83545dff7b3c9245285e75";
       sha256 = "1mfi9als56cpfsz3s91hg3lci8zn7pr9s0l690wqh40vh57d1gxm";
     };
+    meta.homepage = "https://github.com/dcharbon/vim-flatbuffers/";
   };
 
   vim-flutter = buildVimPluginFrom2Nix {
@@ -4102,6 +4473,7 @@ let
       rev = "030a4e609f8f38922fa4ec9a27836d9dabaae957";
       sha256 = "0jibmr0v0pqml1cprs3qmkhhmacpb2bwpk8lhaz4dzp8jlga9g00";
     };
+    meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
 
   vim-fsharp = buildVimPluginFrom2Nix {
@@ -4113,6 +4485,7 @@ let
       rev = "012d98c981139976551a4d9779f5cce7f8d84d5c";
       sha256 = "0ds300kjhm352ni3fwivsrnc9ls021d2x29f4cdszillamcgs7pw";
     };
+    meta.homepage = "https://github.com/fsharp/vim-fsharp/";
   };
 
   vim-ft-diff_fold = buildVimPluginFrom2Nix {
@@ -4124,6 +4497,7 @@ let
       rev = "89771dffd3682ef82a4b3b3e9c971b9909f08e87";
       sha256 = "0bk95cxkfzamlgv1x2jb1bnfas2pmvvqgpn5fvxddf0andm8sfma";
     };
+    meta.homepage = "https://github.com/thinca/vim-ft-diff_fold/";
   };
 
   vim-fugitive = buildVimPluginFrom2Nix {
@@ -4135,6 +4509,7 @@ let
       rev = "85e2c73830b6bb01ce7fc3a926d2b25836a253eb";
       sha256 = "1zbw8cnjl9m59grr65kfkgi8p4850rjp24f1plp4jhidjmsfhv7x";
     };
+    meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
 
   vim-ghost = buildVimPluginFrom2Nix {
@@ -4146,6 +4521,7 @@ let
       rev = "156f393d9c45a5c9dd16f9316a9ad125da67c449";
       sha256 = "0b21yamsfrljk3mfjql0gzsv5mv24qwbs551hxqsapgmrv7j2acg";
     };
+    meta.homepage = "https://github.com/raghur/vim-ghost/";
   };
 
   vim-gist = buildVimPluginFrom2Nix {
@@ -4157,6 +4533,7 @@ let
       rev = "2158eceb210b0a354bc17aa4144554e5d8bb6c79";
       sha256 = "1dz33c63q7gghz35hyrvbshqw20faccs7bvxlda5w70mkbz9h9c4";
     };
+    meta.homepage = "https://github.com/mattn/vim-gist/";
   };
 
   vim-gista = buildVimPluginFrom2Nix {
@@ -4168,6 +4545,7 @@ let
       rev = "af13c0062a46d73384f15abee5a54e164fcaad8e";
       sha256 = "0f3pxahsaj37iln1k3289h7pj7z4fm0z3vfd0szf1spv3hzcjapd";
     };
+    meta.homepage = "https://github.com/lambdalisue/vim-gista/";
   };
 
   vim-gitbranch = buildVimPluginFrom2Nix {
@@ -4179,17 +4557,19 @@ let
       rev = "8118dc1cdd387bd609852be4bf350360ce881193";
       sha256 = "01gvd96mnzfc5s0951zzq122birg5svnximkldgb9kv5bmsnmh3j";
     };
+    meta.homepage = "https://github.com/itchyny/vim-gitbranch/";
   };
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-04-03";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "b7db78b258aa9925f3c86968b348413732964b3b";
-      sha256 = "0933b60bma8xs7cmw1p2npfzyqmpww3frmcg51dsg2hsg9rq213q";
+      rev = "2b62481d388c5e0e1dd11e74377523fdb98b6ac4";
+      sha256 = "1x6x6wp1ggn2whrm5mi7wyz5b88syc4yvncgs8bjhbrc636psqhq";
     };
+    meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
 
   vim-github-dashboard = buildVimPluginFrom2Nix {
@@ -4201,28 +4581,31 @@ let
       rev = "8012a2016a9e39a50081c9d5db2deb09ae4a6010";
       sha256 = "0jkr6mz5zcpbyswmiyprcbm8l93lkg5sr46r8kyds1n2vz19cf7x";
     };
+    meta.homepage = "https://github.com/junegunn/vim-github-dashboard/";
   };
 
   vim-glsl = buildVimPluginFrom2Nix {
     pname = "vim-glsl";
-    version = "2019-11-01";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "tikhomirov";
       repo = "vim-glsl";
-      rev = "fbdb226318e3e1747b29f31ad07c0cce07e9f22a";
-      sha256 = "076fny258ynamnd1mnknmp1zlafvvxpx7p28985mms84k65ihvy5";
+      rev = "36266238d96cd2219769793855a7e915f5e6a32c";
+      sha256 = "0vxjbv5qn7lvvpqv1danmkg423cbf7czxzp208zlx9l82vnr24z8";
     };
+    meta.homepage = "https://github.com/tikhomirov/vim-glsl/";
   };
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-04-12";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "b995086646f29de25acbe7df2c08cc196c4641d7";
-      sha256 = "12s04gnnkkmhlm36gxpy18ngxj88b9p5b6vzdq662gmwl3wk98nc";
+      rev = "07869cdfb066dcb287673eee3effb30021a970b8";
+      sha256 = "1gmfvlysy7s0rh3lwpq9fym59nfwm64grcfrrhf2d9gzvwip9326";
     };
+    meta.homepage = "https://github.com/fatih/vim-go/";
   };
 
   vim-grammarous = buildVimPluginFrom2Nix {
@@ -4234,6 +4617,7 @@ let
       rev = "083cbee6094c9ec347d7c75af421be27d2ec7e70";
       sha256 = "1cxycr2ijzxn9d5xgp9ri4f2i4d87a3100nsc11iwa2bzir4xsiz";
     };
+    meta.homepage = "https://github.com/rhysd/vim-grammarous/";
   };
 
   vim-grepper = buildVimPluginFrom2Nix {
@@ -4245,6 +4629,7 @@ let
       rev = "dde6a660c7dd4e02b331da238ea477770073aca2";
       sha256 = "0c411yg2s6wb8141lqpgasg7iwgvfwy88z6l0c0gccmk8knypxhm";
     };
+    meta.homepage = "https://github.com/mhinz/vim-grepper/";
   };
 
   vim-gui-position = buildVimPluginFrom2Nix {
@@ -4256,6 +4641,7 @@ let
       rev = "065d0dcf96c28cfc0003d72c1b3c49203632f62a";
       sha256 = "11kv9kkya9sybslg7lfhhcn2fi3n735zvprg8ch6kd58m82xr4n3";
     };
+    meta.homepage = "https://github.com/brennanfee/vim-gui-position/";
   };
 
   vim-gutentags = buildVimPluginFrom2Nix {
@@ -4267,6 +4653,7 @@ let
       rev = "96cd7dbfe324e8983da68468085967e0b85dc898";
       sha256 = "15xvknzy2r178jh0w76cagmxprxsznzk0zgv41h33rns4hy5q1vf";
     };
+    meta.homepage = "https://github.com/ludovicchabant/vim-gutentags/";
   };
 
   vim-hardtime = buildVimPluginFrom2Nix {
@@ -4278,6 +4665,7 @@ let
       rev = "d9128568afa62947b7ac8f12c22d88e3de526a6b";
       sha256 = "097wzfh4n4fnsq2gx4hbmyr731ciky8qcai5aiyh2baybvwshmr5";
     };
+    meta.homepage = "https://github.com/takac/vim-hardtime/";
   };
 
   vim-haskellconceal = buildVimPluginFrom2Nix {
@@ -4289,6 +4677,7 @@ let
       rev = "802f82a5afee56e9e1251e6f756104a3bd114234";
       sha256 = "1kh6853hi4rgl4z1xs8kz9l1q9w7lh0r42y2m0rabfpr6yh3091r";
     };
+    meta.homepage = "https://github.com/twinside/vim-haskellconceal/";
   };
 
   vim-haskellConcealPlus = buildVimPluginFrom2Nix {
@@ -4300,6 +4689,7 @@ let
       rev = "d59da33c16966f694b2e4f0bfc57515a935da83f";
       sha256 = "1y2hgcpls21738lhrgimsxnkhxxqczp05nmk68s28xssbn4dqgma";
     };
+    meta.homepage = "https://github.com/enomsg/vim-haskellConcealPlus/";
   };
 
   vim-hdevtools = buildVimPluginFrom2Nix {
@@ -4311,6 +4701,7 @@ let
       rev = "ab33578bbdbcbd80050faf43e4adee1653fe34dc";
       sha256 = "1xvjz6yidcywn1xmdqlxsz68lmkx6rmiqf6q2gfz56pzq1mfmski";
     };
+    meta.homepage = "https://github.com/bitc/vim-hdevtools/";
   };
 
   vim-hier = buildVimPluginFrom2Nix {
@@ -4322,6 +4713,7 @@ let
       rev = "0b8c365263551a67404ebd7e528c55e17c1d3de7";
       sha256 = "118pd9sx1bl9vfr89xrf536hfx4l162a43a1qpwpkqxzb9a3ca7n";
     };
+    meta.homepage = "https://github.com/jceb/vim-hier/";
   };
 
   vim-highlightedyank = buildVimPluginFrom2Nix {
@@ -4333,6 +4725,7 @@ let
       rev = "931cc6bd53e4a1fdbe592751f0e13c0e401f0a49";
       sha256 = "091qw0zlc80micn29wb6r8m4f7pplcv8bx1yfvbn3cba77qyj3nb";
     };
+    meta.homepage = "https://github.com/machakann/vim-highlightedyank/";
   };
 
   vim-hindent = buildVimPluginFrom2Nix {
@@ -4344,6 +4737,7 @@ let
       rev = "f8e84c199fd00a3ccaf5bbbc97786bde9a4faa13";
       sha256 = "1y4nnz38zal1ffs5n751dn9p9apk8q7pq3cw79r5z6fsdp942ai6";
     };
+    meta.homepage = "https://github.com/alx741/vim-hindent/";
   };
 
   vim-hoogle = buildVimPluginFrom2Nix {
@@ -4355,6 +4749,7 @@ let
       rev = "871d104c92e33cb238506f2805f1652561978cc8";
       sha256 = "17qvi57g72ijgk7nczczli3kcphvdf625fzqbqcmqpsawgvfd07n";
     };
+    meta.homepage = "https://github.com/Twinside/vim-hoogle/";
   };
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
@@ -4366,6 +4761,7 @@ let
       rev = "3b370b69bce94bdeb0ca7137f548356f775cadcc";
       sha256 = "1wmyxscyqs6344jsn839dyrx7k3iiwv07ic9gxh5d93g5s3c3pml";
     };
+    meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
 
   vim-husk = buildVimPluginFrom2Nix {
@@ -4377,6 +4773,7 @@ let
       rev = "ad89559ff8a6c4b1e94a18b2d494a69a1f701d08";
       sha256 = "09kqzaqa4jdh31q0a3nxbx9li7zg890qxh68rfzblzyx22xv4mka";
     };
+    meta.homepage = "https://github.com/vim-utils/vim-husk/";
   };
 
   vim-hybrid-material = buildVimPluginFrom2Nix {
@@ -4388,6 +4785,7 @@ let
       rev = "f2e92ac7e5c4bb75d72f0abaea939e4364e00e2e";
       sha256 = "01b9n598106qh68ky3fykczq13pldi221r7lrxvg0vnv2zp1z5qd";
     };
+    meta.homepage = "https://github.com/kristijanhusak/vim-hybrid-material/";
   };
 
   vim-iced-coffee-script = buildVimPluginFrom2Nix {
@@ -4399,6 +4797,7 @@ let
       rev = "e42e0775fa4b1f8840c55cd36ac3d1cedbc1dea2";
       sha256 = "14yfirny359rlrr082il2ys3hxiyrbbk794rdxrs2lasjy8rb1f7";
     };
+    meta.homepage = "https://github.com/noc7c9/vim-iced-coffee-script/";
   };
 
   vim-illuminate = buildVimPluginFrom2Nix {
@@ -4410,6 +4809,7 @@ let
       rev = "80dafb9b0e7b9f4ce7c843d4104f455c8c5b1f42";
       sha256 = "1yijaj1dqfmw4dsdmgj01sxizyraisxwjqh2hhbq93pdln4lm51f";
     };
+    meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
 
   vim-indent-guides = buildVimPluginFrom2Nix {
@@ -4421,6 +4821,7 @@ let
       rev = "54d889a63716ee2f1818aa2ec5082db47147147b";
       sha256 = "0ahlbjv2ibhhnf9zqn85b2sh3wf9l0kmg2qmavz3z5fmf8sqljj2";
     };
+    meta.homepage = "https://github.com/nathanaelkane/vim-indent-guides/";
   };
 
   vim-indent-object = buildVimPluginFrom2Nix {
@@ -4432,6 +4833,7 @@ let
       rev = "5c5b24c959478929b54a9e831a8e2e651a465965";
       sha256 = "1kmwnz0jxjkvfzy06r7r73pcxfcyjp8p8m2d6qrhjfvzidgfhw19";
     };
+    meta.homepage = "https://github.com/michaeljsmith/vim-indent-object/";
   };
 
   vim-indentwise = buildVimPluginFrom2Nix {
@@ -4443,6 +4845,7 @@ let
       rev = "608bd6876d3b56d469e0e615eb774a6e06095dbf";
       sha256 = "0bnzk1afi88icq58389nxqz196gkxcj71qrxvw87d72h2zaspvcx";
     };
+    meta.homepage = "https://github.com/jeetsukumaran/vim-indentwise/";
   };
 
   vim-indexed-search = buildVimPluginFrom2Nix {
@@ -4454,6 +4857,7 @@ let
       rev = "5af020bba084b699d0453f242d7d76711d64b1e3";
       sha256 = "0cq265yqksh7jqazxn7qxr7bclrk2pq7py4c29wspsvbi0m3m8rc";
     };
+    meta.homepage = "https://github.com/henrik/vim-indexed-search/";
   };
 
   vim-ipython = buildVimPluginFrom2Nix {
@@ -4465,6 +4869,7 @@ let
       rev = "42499f094b805b90b683afa5009cee99abd0bb75";
       sha256 = "10wpfvfs8yv1bvzra4d5zy5glp62gbalpayxx7mkalhr2ccppy3x";
     };
+    meta.homepage = "https://github.com/ivanov/vim-ipython/";
   };
 
   vim-isort = buildVimPluginFrom2Nix {
@@ -4476,6 +4881,7 @@ let
       rev = "b749d009075a333634dc61a039a2dc0e7f34609c";
       sha256 = "1h8s21kwbjdg632jvd46r2va7il4f1dbgwfw8fkds0n08rbnpdjw";
     };
+    meta.homepage = "https://github.com/fisadev/vim-isort/";
   };
 
   vim-janah = buildVimPluginFrom2Nix {
@@ -4487,6 +4893,7 @@ let
       rev = "3b8ae976987b6ade2abeac25f0208e8bc90d7138";
       sha256 = "16bygyri9qxyhl8n8md945wwy1i9lss4hwxa7yjl9ms2fzzragv4";
     };
+    meta.homepage = "https://github.com/mhinz/vim-janah/";
   };
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
@@ -4498,17 +4905,19 @@ let
       rev = "dc7951895a98c49c39622f65cdd7b39374c348bc";
       sha256 = "1d8xiiwfg5wz57jyy7ahbi2bl5sjkhkpkqm2qbhsn7cd9vk36sxy";
     };
+    meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
 
   vim-javascript = buildVimPluginFrom2Nix {
     pname = "vim-javascript";
-    version = "2020-01-24";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "pangloss";
       repo = "vim-javascript";
-      rev = "db595656304959dcc3805cf63ea9a430e3f01e8f";
-      sha256 = "0lr0506zbax41xdbfgmm70iiyqi6g8lsmwfy9112fnd9n62s32yd";
+      rev = "c3966153e81bc3766b1627e6ab0cd53333b61c1e";
+      sha256 = "1sbd5a06linzkx59lndfw27r66ng2bfm4pgn2cgjlcsjmkbcgakn";
     };
+    meta.homepage = "https://github.com/pangloss/vim-javascript/";
   };
 
   vim-javascript-syntax = buildVimPluginFrom2Nix {
@@ -4520,6 +4929,7 @@ let
       rev = "e65e4f01ba94761323450208c9bf7141428784db";
       sha256 = "09561jf3cmzpm8jn8k34fd3av6i1mqi6n32bisri96jkabw8dpv7";
     };
+    meta.homepage = "https://github.com/jelera/vim-javascript-syntax/";
   };
 
   vim-jinja = buildVimPluginFrom2Nix {
@@ -4531,6 +4941,7 @@ let
       rev = "8d330a7aaf0763d080dc82204b4aaba6ac0605c6";
       sha256 = "1n62ga02rcj7jjgzvwr46pckj59dc1zqahjgampjcwdd8vf4mg3q";
     };
+    meta.homepage = "https://github.com/lepture/vim-jinja/";
   };
 
   vim-jsbeautify = buildVimPluginFrom2Nix {
@@ -4543,6 +4954,7 @@ let
       sha256 = "06gxmqyxkw2mgdy6m7b248w0gzkwsjcpyihpnyf5cajb5aw4wk13";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/maksimr/vim-jsbeautify/";
   };
 
   vim-jsdoc = buildVimPluginFrom2Nix {
@@ -4554,6 +4966,7 @@ let
       rev = "b23073449d1df98ecfe73828079115e0d1d7573b";
       sha256 = "0r91lr3gpjbaalqln7k8kv4q88w9rclfyji87yzmnr3apjaazyjj";
     };
+    meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
 
   vim-json = buildVimPluginFrom2Nix {
@@ -4565,6 +4978,7 @@ let
       rev = "3727f089410e23ae113be6222e8a08dd2613ecf2";
       sha256 = "1c19pqrys45pzflj5jyrm4q6hcvs977lv6qsfvbnk7nm4skxrqp1";
     };
+    meta.homepage = "https://github.com/elzr/vim-json/";
   };
 
   vim-jsonnet = buildVimPluginFrom2Nix {
@@ -4576,6 +4990,7 @@ let
       rev = "b7459b36e5465515f7cf81d0bb0e66e42a7c2eb5";
       sha256 = "0fc6xpiyxly3ibs4lzn6dk9yd2cc353qb8lavag7zmims1bncvqf";
     };
+    meta.homepage = "https://github.com/google/vim-jsonnet/";
   };
 
   vim-jsx-pretty = buildVimPluginFrom2Nix {
@@ -4587,6 +5002,7 @@ let
       rev = "496c44d89281d1e13c9bb4c75a2e69daba48b47b";
       sha256 = "09xr8pbx27qpffcr0j1857cpyxgkv5xay6mgpzvynpxq21xrmm3q";
     };
+    meta.homepage = "https://github.com/MaxMEllon/vim-jsx-pretty/";
   };
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
@@ -4598,6 +5014,7 @@ let
       rev = "c32357892f10117291461631d51a6bfd20e72b9a";
       sha256 = "0zqvcnbns0vbxkqr0mpiapql8cvp54nn5a6mwc7l24jr6plhiwmn";
     };
+    meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
 
   vim-lastplace = buildVimPluginFrom2Nix {
@@ -4609,6 +5026,7 @@ let
       rev = "48ba343c8c1ca3039224727096aae214f51327d1";
       sha256 = "0m8skd86p2cr0wz8rghj4is3fgnlh7vrw7can916li35i3hajid2";
     };
+    meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
 
   vim-latex-live-preview = buildVimPluginFrom2Nix {
@@ -4620,6 +5038,7 @@ let
       rev = "855c30915547c7e9c19b7e6efb528730c071d2e8";
       sha256 = "14fgbq7wyyhhzkd8832g07z97jg1b9awibzf3sn33ih7p5bb3hhp";
     };
+    meta.homepage = "https://github.com/xuhdev/vim-latex-live-preview/";
   };
 
   vim-lawrencium = buildVimPluginFrom2Nix {
@@ -4631,6 +5050,7 @@ let
       rev = "e0c127cb4e4224453cb88faffd4627b7da499bcb";
       sha256 = "1gvvr04x17157iz83rv45nlbj1qaz90j0l96q3fki3h1b0fw0099";
     };
+    meta.homepage = "https://github.com/ludovicchabant/vim-lawrencium/";
   };
 
   vim-leader-guide = buildVimPluginFrom2Nix {
@@ -4642,6 +5062,7 @@ let
       rev = "8dff63fcc29811bb30fccb135f31ad488a9a6170";
       sha256 = "1n1qgvr729r28rprjkam0blh4qscs8bxf6ay7v8x732axg9gpyav";
     };
+    meta.homepage = "https://github.com/hecal3/vim-leader-guide/";
   };
 
   vim-lean = buildVimPluginFrom2Nix {
@@ -4653,6 +5074,7 @@ let
       rev = "02d678e4346dce35d6b2eed9a03b2b2d3cc84127";
       sha256 = "1yw13wf7j92gk8fwkhls6bdbz2h7xbyq4qba8zsfm76rbqn7vzfg";
     };
+    meta.homepage = "https://github.com/mk12/vim-lean/";
   };
 
   vim-ledger = buildVimPluginFrom2Nix {
@@ -4664,6 +5086,7 @@ let
       rev = "47186eb47f543becc34a048a37298954d89bf7c8";
       sha256 = "0265614sa2d2s3xpzfliq159v7bmdvlc9yyw5c89pqv4b86gjxzf";
     };
+    meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
 
   vim-lion = buildVimPluginFrom2Nix {
@@ -4675,6 +5098,7 @@ let
       rev = "75306ac1922952ca1a401aee43ddbb304029926d";
       sha256 = "0kkf91ppn5jhvnpmmjsp6rvf97pqj57jrbn3qmmy925ncfqh90ld";
     };
+    meta.homepage = "https://github.com/tommcdo/vim-lion/";
   };
 
   vim-liquid = buildVimPluginFrom2Nix {
@@ -4686,6 +5110,7 @@ let
       rev = "9ebc192daec70e620c22d574b5a1c1e16f89a48c";
       sha256 = "0cvcjiii5wv55n695284k520rrwi0l4gqpyiqnrpnhmsaqks0n0f";
     };
+    meta.homepage = "https://github.com/tpope/vim-liquid/";
   };
 
   vim-localvimrc = buildVimPluginFrom2Nix {
@@ -4697,6 +5122,7 @@ let
       rev = "fc2f789ce7afa4bbdefbbb4599a802b39b7e7596";
       sha256 = "19drgnsn4rb9kv30ykndwjgflsfs328dhm44a9hcp8f8faqpim3d";
     };
+    meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
 
   vim-logreview = buildVimPluginFrom2Nix {
@@ -4708,28 +5134,31 @@ let
       rev = "b7b66ab338e904127d796af49235b8c29742f18f";
       sha256 = "09lyymq0f3ybqdzhbpia7b0wcjbcyg5nkqd72qk8jkvc42da2af3";
     };
+    meta.homepage = "https://github.com/andreshazard/vim-logreview/";
   };
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-04-11";
+    version = "2020-04-13";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "4da362f49254774fa5ad407ea3b2407db0147590";
-      sha256 = "0wlgj485dy4sb3hbwi8kp69d8iw2zh5xny09xv2zk174dsvp7xxx";
+      rev = "fb8056a305a4e3221304ca1483231b6960de5321";
+      sha256 = "0glg6225h84ahabahb9q5inipbbi7shcx5y44s8r2gyaqw1l773p";
     };
+    meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-03-20";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "b31525d7f6170c68f900abe24748ac9fbaf1ee4d";
-      sha256 = "0d6qss18dq36hvxv1if1aaylljsnp2isxajb5xh4zr4cxarrzbfi";
+      rev = "f630b985facf383ae1657d569ff69582224cca04";
+      sha256 = "1v0f9l12afr4kh6d9sdyl5fxvcgz0c018vll5932pfcrlwhkvdd3";
     };
+    meta.homepage = "https://github.com/google/vim-maktaba/";
   };
 
   vim-manpager = buildVimPluginFrom2Nix {
@@ -4741,6 +5170,7 @@ let
       rev = "25bdd9448651a7669659b1b8d8d7a82acdfbf8af";
       sha256 = "0d7rg4lvyxr4v34bimxpdkynmvs606fqvv0qpi7g139ng9hv6wqm";
     };
+    meta.homepage = "https://github.com/lambdalisue/vim-manpager/";
   };
 
   vim-markdown = buildVimPluginFrom2Nix {
@@ -4752,6 +5182,7 @@ let
       rev = "da5a7ac96f517e0fd6f886bc3fbe27156ca1f946";
       sha256 = "198bsv88njz6l2pf9yjxb8292aj7x8n2sxi50q3cdsg29a3y2i5c";
     };
+    meta.homepage = "https://github.com/plasticboy/vim-markdown/";
   };
 
   vim-mergetool = buildVimPluginFrom2Nix {
@@ -4763,6 +5194,7 @@ let
       rev = "0275a85256ad173e3cde586d54f66566c01b607f";
       sha256 = "1i3zil06zyndm400i2pfn64ykbs29fw8l720229a8ypp9mxcibcp";
     };
+    meta.homepage = "https://github.com/samoshkin/vim-mergetool/";
   };
 
   vim-metamath = buildVimPluginFrom2Nix {
@@ -4774,6 +5206,7 @@ let
       rev = "50aff63608256909159f1b8fc3f09ba61b2bb9bd";
       sha256 = "0gwqafhr18wv9ygq47cxwi0k4gj1xll4z8s61w9l9vwaiy5znssh";
     };
+    meta.homepage = "https://github.com/david-a-wheeler/vim-metamath/";
   };
 
   vim-misc = buildVimPluginFrom2Nix {
@@ -4785,6 +5218,7 @@ let
       rev = "3e6b8fb6f03f13434543ce1f5d24f6a5d3f34f0b";
       sha256 = "0rd9788dyfc58py50xbiaz5j7nphyvf3rpp3yal7yq2dhf0awwfi";
     };
+    meta.homepage = "https://github.com/xolox/vim-misc/";
   };
 
   vim-monokai-pro = buildVimPluginFrom2Nix {
@@ -4796,6 +5230,7 @@ let
       rev = "c18f35725a5b0d569bfe6921fc4f56c029324828";
       sha256 = "1nz8jnlhd6z9zqa9dfbxa9fabihpzz8ajlf4plkaxdy9137z1zqc";
     };
+    meta.homepage = "https://github.com/phanviet/vim-monokai-pro/";
   };
 
   vim-move = buildVimPluginFrom2Nix {
@@ -4807,6 +5242,7 @@ let
       rev = "58049562efb0e6e077416d897b760c4dc9bb25c4";
       sha256 = "18pnk6ri73a6dq86zh510wy1s0z1dwnsyay7lxrgirjgh3s9nhhq";
     };
+    meta.homepage = "https://github.com/matze/vim-move/";
   };
 
   vim-mucomplete = buildVimPluginFrom2Nix {
@@ -4818,6 +5254,7 @@ let
       rev = "f13357964cc074d4fe747787065bfb19046f7fce";
       sha256 = "0kqik4xgnk3cw7ls53djij086rbp49klzckc4zs4ph4cjwcpjhgq";
     };
+    meta.homepage = "https://github.com/lifepillar/vim-mucomplete/";
   };
 
   vim-multiple-cursors = buildVimPluginFrom2Nix {
@@ -4829,6 +5266,7 @@ let
       rev = "701e92dd4cfd1b0f511e83a96d52bc590c0218dd";
       sha256 = "0a7fghk025f8gj5rsixi1hn8vkg2982fja7maf427v3wq74s6j1c";
     };
+    meta.homepage = "https://github.com/terryma/vim-multiple-cursors/";
   };
 
   vim-nerdtree-tabs = buildVimPluginFrom2Nix {
@@ -4840,6 +5278,7 @@ let
       rev = "07d19f0299762669c6f93fbadb8249da6ba9de62";
       sha256 = "16iqhp5l6xvq0k8bq9ngqfhish1fwggpmvd7ni1fh5dqr00iii9x";
     };
+    meta.homepage = "https://github.com/jistr/vim-nerdtree-tabs/";
   };
 
   vim-nftables = buildVimPluginFrom2Nix {
@@ -4851,6 +5290,7 @@ let
       rev = "01c7b97eff12fd4b624e6efa2c0468163db61ebc";
       sha256 = "1n3mpaa60k4w0sqpkgw19aksa1sbcqz7vl8fp6bj6i63bhiprsqf";
     };
+    meta.homepage = "https://github.com/nfnty/vim-nftables/";
   };
 
   vim-niceblock = buildVimPluginFrom2Nix {
@@ -4862,6 +5302,7 @@ let
       rev = "9302f527eefc0fde8df983cbb9710ad52c4213b5";
       sha256 = "1d0rx7s10jl1q9y5s4235imizbyxrgkm4dxh5ankcr8s617l7mz2";
     };
+    meta.homepage = "https://github.com/kana/vim-niceblock/";
   };
 
   vim-ninja-feet = buildVimPluginFrom2Nix {
@@ -4873,6 +5314,7 @@ let
       rev = "5b48f97bf4865a25f5f4568c45cdfd08f946ec4f";
       sha256 = "1i3n5nlwyg65k0f0qrimbfs67l2xx39cqp4gyrycw4vzp6hs0lsc";
     };
+    meta.homepage = "https://github.com/tommcdo/vim-ninja-feet/";
   };
 
   vim-nix = buildVimPluginFrom2Nix {
@@ -4884,6 +5326,7 @@ let
       rev = "a3eed01f4de995a51dfdd06287e44fcb231f6adf";
       sha256 = "0pwdfwws1dj3705m00ghw3dvym5zbm00bfsj023gmbp6vr8wn6yi";
     };
+    meta.homepage = "https://github.com/LnL7/vim-nix/";
   };
 
   vim-obsession = buildVimPluginFrom2Nix {
@@ -4895,6 +5338,7 @@ let
       rev = "96a3f837c112cb64e0a9857b69f6d6a71041155e";
       sha256 = "11h7jyg7fhjmq3pmpc93nrsxm175ra14407rs3558h8p04snc159";
     };
+    meta.homepage = "https://github.com/tpope/vim-obsession/";
   };
 
   vim-one = buildVimPluginFrom2Nix {
@@ -4906,6 +5350,7 @@ let
       rev = "6695e135415c53a8fbe96672e382200aa1ffb4b4";
       sha256 = "0951r9kw23zlwd7fda6ib2d9k0akpfd2hvh82pasgw3ks9v1n2vf";
     };
+    meta.homepage = "https://github.com/rakr/vim-one/";
   };
 
   vim-operator-replace = buildVimPluginFrom2Nix {
@@ -4917,6 +5362,7 @@ let
       rev = "1345a556a321a092716e149d4765a5e17c0e9f0f";
       sha256 = "07cibp61zwbzpjfxqdc77fzrgnz8jhimmdhhyjr0lvgrjgvsnv6q";
     };
+    meta.homepage = "https://github.com/kana/vim-operator-replace/";
   };
 
   vim-operator-surround = buildVimPluginFrom2Nix {
@@ -4928,6 +5374,7 @@ let
       rev = "80337a40a829cfc77b065a71d8a609e2ad7d2c8b";
       sha256 = "0f9shg81bl39hz67ahbi6k6gbhky7gzp8by16fhiz75hbjgp9lq2";
     };
+    meta.homepage = "https://github.com/rhysd/vim-operator-surround/";
   };
 
   vim-operator-user = buildVimPluginFrom2Nix {
@@ -4939,6 +5386,7 @@ let
       rev = "c3dfd41c1ed516b4b901c97562e644de62c367aa";
       sha256 = "16y2fyrmwg4vkcl85i8xg8s6m39ca2jvgi9qm36b3vzbnkcifafb";
     };
+    meta.homepage = "https://github.com/kana/vim-operator-user/";
   };
 
   vim-orgmode = buildVimPluginFrom2Nix {
@@ -4950,6 +5398,7 @@ let
       rev = "44faafa1d846691645b66e83f198f46afa755a6e";
       sha256 = "1s649hksrwq70xyi8cvcd9bqcfyczga5c1g4fsas50rs107fcccn";
     };
+    meta.homepage = "https://github.com/jceb/vim-orgmode/";
   };
 
   vim-pager = buildVimPluginFrom2Nix {
@@ -4961,17 +5410,19 @@ let
       rev = "a657d508b4d5a23aada7585c9f1e0063914c0c45";
       sha256 = "10xm77pia916zf9i2llyhs89s653r98l6zq8cswm7cw61bjfxvv6";
     };
+    meta.homepage = "https://github.com/lambdalisue/vim-pager/";
   };
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2020-03-20";
+    version = "2020-04-17";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "c473c298d570622d520f455698a95356e55d6dcf";
-      sha256 = "1j4plsm7md6yhis8bmgznwln12gnnm0lg9wvxgydqd6wxrc6hfnd";
+      rev = "c6e2ddb1318cc141b2d84d630e493a14df942ea1";
+      sha256 = "15ci141jiv84ibrg1v98as1k376cnx06p1zp50w1qmccv696n8nv";
     };
+    meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
 
   vim-pandoc-after = buildVimPluginFrom2Nix {
@@ -4983,6 +5434,7 @@ let
       rev = "26513a138d5e2ba8c785e0d7dfec0218e983e9dd";
       sha256 = "07wg4j2kx08s9hvvp8jspwb0v7fgac8m8cjr3y1sbq8ca18bkvgy";
     };
+    meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-after/";
   };
 
   vim-pandoc-syntax = buildVimPluginFrom2Nix {
@@ -4994,6 +5446,7 @@ let
       rev = "0d1129e5cf1b0e3a90e923c3b5f40133bf153f7c";
       sha256 = "162l2p8md8lfyfjxzlmlz5ky5kvvr6wjmdk8r8lk6ygpkl2b51f7";
     };
+    meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/";
   };
 
   vim-parinfer = buildVimPluginFrom2Nix {
@@ -5005,6 +5458,7 @@ let
       rev = "a8c075ce5256bffbf1f62e08aba37dca88d0cf1a";
       sha256 = "1v2pyjyxvqw2kl9j4pdpdlbl2q3jnndcb8iqgyygs7jn91c4s073";
     };
+    meta.homepage = "https://github.com/bhurlow/vim-parinfer/";
   };
 
   vim-pasta = buildVimPluginFrom2Nix {
@@ -5016,6 +5470,7 @@ let
       rev = "cb4501a123d74fc7d66ac9f10b80c9d393746c66";
       sha256 = "14rswwx24i75xzgkbx1hywan1msn2ki26353ly2pyvznnqss1pwq";
     };
+    meta.homepage = "https://github.com/sickill/vim-pasta/";
   };
 
   vim-pathogen = buildVimPluginFrom2Nix {
@@ -5027,6 +5482,7 @@ let
       rev = "c6bc42404597c718e4a032a98e21e63321cbb05a";
       sha256 = "1scj84vlrn2kavnq2wabhdzhnlkb3w046grv9j3976i5ykjmyiif";
     };
+    meta.homepage = "https://github.com/tpope/vim-pathogen/";
   };
 
   vim-peekaboo = buildVimPluginFrom2Nix {
@@ -5038,6 +5494,7 @@ let
       rev = "cc4469c204099c73dd7534531fa8ba271f704831";
       sha256 = "11lgf60v2kj772d9azkfddypwidcgfps5mvnhmp4gg0fmfx12h99";
     };
+    meta.homepage = "https://github.com/junegunn/vim-peekaboo/";
   };
 
   vim-pencil = buildVimPluginFrom2Nix {
@@ -5049,6 +5506,7 @@ let
       rev = "09458527601fdb2fbd174317bdddfb34e4c64e79";
       sha256 = "09b30cxlwbr9l07ya05is9q2y9vzbzhcc656nvjjzf968l496xr2";
     };
+    meta.homepage = "https://github.com/reedes/vim-pencil/";
   };
 
   vim-phabricator = buildVimPluginFrom2Nix {
@@ -5060,6 +5518,7 @@ let
       rev = "065c7e3f2d92a6792b50f087393b2c9a10a1e825";
       sha256 = "0yhf347fhrs0aqsq1swqihyav32442lv2chzjr3mzqcym8zbzsh6";
     };
+    meta.homepage = "https://github.com/jparise/vim-phabricator/";
   };
 
   vim-pico8-syntax = buildVimPluginFrom2Nix {
@@ -5071,6 +5530,7 @@ let
       rev = "dbdd92fad0533eeaeaea844815d4de11e9507ce7";
       sha256 = "0say0bb74rdbabgsf7rrbm8x841pmgh80fwr6kn94fgphr3vhm0s";
     };
+    meta.homepage = "https://github.com/justinj/vim-pico8-syntax/";
   };
 
   vim-plug = buildVimPluginFrom2Nix {
@@ -5082,6 +5542,7 @@ let
       rev = "e718868e85e2a32410144dfcdc3ba1303719450d";
       sha256 = "1znaapjdz9nwgvr5il6rck82mz4dhj1nan87w2216xwpp53w61fb";
     };
+    meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
 
   vim-plugin-AnsiEsc = buildVimPluginFrom2Nix {
@@ -5093,17 +5554,19 @@ let
       rev = "690f820d20b6e3a79ba20499874eb7333aa4ca5c";
       sha256 = "05sf9xh7zs475kykz1hsp0xp7iiclp7pdiy3bpx7wlfp9z71bd9p";
     };
+    meta.homepage = "https://github.com/powerman/vim-plugin-AnsiEsc/";
   };
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-03-05";
+    version = "2020-04-14";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "e86e0ad36ef9501acbc3e8c63a1d4fab104e47cb";
-      sha256 = "0xr0fv26bxas315bvz0fkw11cg5j301vmy02a2aii90ljvyviv77";
+      rev = "14dc82fc4e6c0c08078f97a24a6c1639c1cc5113";
+      sha256 = "0cx9wvv8ca589wna7yy0qx0hc0c9g42y50fxa0y7vyw3wwkq8q7n";
     };
+    meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
 
   vim-prettyprint = buildVimPluginFrom2Nix {
@@ -5115,6 +5578,7 @@ let
       rev = "d6060d2b1ff1cff71714e126addd3b10883ade12";
       sha256 = "0mb1ylsq4023ik9wd9iwzlynra2c320xp9h2i79bspapglgd5gk9";
     };
+    meta.homepage = "https://github.com/thinca/vim-prettyprint/";
   };
 
   vim-projectionist = buildVimPluginFrom2Nix {
@@ -5126,17 +5590,19 @@ let
       rev = "17a8b2078a9ca1410d2080419e1cb9c9bb2e4492";
       sha256 = "1vf3jdcfiq27k9mdwlvsm2hn1xgxr79ckq3jqq00avj50bpdzs1z";
     };
+    meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
 
   vim-prosession = buildVimPluginFrom2Nix {
     pname = "vim-prosession";
-    version = "2019-11-01";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "84df77d6470491a67f926b9a6a6a8cc675c161ac";
-      sha256 = "03p5ncdah3mxd2dxrqprd14gzyy2qlvf9y5hcsdcakf2hhsrxvlg";
+      rev = "95f78bd0f719fee96569f30fd5f4199c4461efb7";
+      sha256 = "1ix04f3nxxmxd36kzalx0hrbks30v44ydz15apvl1h8l8663hda2";
     };
+    meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
 
   vim-protobuf = buildVimPluginFrom2Nix {
@@ -5148,6 +5614,7 @@ let
       rev = "0d0f4e4b4087e0e608066aa2ba295e396d039931";
       sha256 = "1vh9f34rb7pg6dc64xhr102yig6y03is74777av464bhq651z7p5";
     };
+    meta.homepage = "https://github.com/uarun/vim-protobuf/";
   };
 
   vim-ps1 = buildVimPluginFrom2Nix {
@@ -5159,6 +5626,7 @@ let
       rev = "9fdf92846fbeb8445e535cf0c5bdb4b1dce4a506";
       sha256 = "0w98zcjvb64fhd6ahy3cqrs4y7zacak9nzpkkhr03l6zzbqb5kz4";
     };
+    meta.homepage = "https://github.com/PProvost/vim-ps1/";
   };
 
   vim-pug = buildVimPluginFrom2Nix {
@@ -5170,6 +5638,7 @@ let
       rev = "ea39cd942cf3194230cf72bfb838901a5344d3b3";
       sha256 = "07141jkfnaia4ydc6qcg0bc06w720l2lzl7bm4bsjwswqrzmhfam";
     };
+    meta.homepage = "https://github.com/digitaltoad/vim-pug/";
   };
 
   vim-puppet = buildVimPluginFrom2Nix {
@@ -5181,6 +5650,7 @@ let
       rev = "fc6e9efef797c505b2e67631ad2517d7d6e8f00d";
       sha256 = "0a4qv8f74g6c2i9l6kv3zbcq9lskhdqg86w12f8hshw1vkfmfr4x";
     };
+    meta.homepage = "https://github.com/rodjek/vim-puppet/";
   };
 
   vim-python-pep8-indent = buildVimPluginFrom2Nix {
@@ -5192,6 +5662,7 @@ let
       rev = "60ba5e11a61618c0344e2db190210145083c91f8";
       sha256 = "1blyhkykfnf4pgfq9hn9l8pq0iqdvig9m4zd8qq9aa9rlm8f0kzh";
     };
+    meta.homepage = "https://github.com/Vimjas/vim-python-pep8-indent/";
   };
 
   vim-qml = buildVimPluginFrom2Nix {
@@ -5203,6 +5674,7 @@ let
       rev = "b04de1dadb7dfe372d22f7529a001af1b5e19f4f";
       sha256 = "1pxl70l0g4i8cbnpjhb9pyjhz982flkrng07y9xwzbdl2jx42i8s";
     };
+    meta.homepage = "https://github.com/peterhoeg/vim-qml/";
   };
 
   vim-quickrun = buildVimPluginFrom2Nix {
@@ -5214,6 +5686,7 @@ let
       rev = "f637c35b16d6e83cc71dababbda2a64eb29b3f5e";
       sha256 = "0yf9acqcj3x62qchz0z9mwgf1af5vz39kyzhv5jh1mc0vwksrdwl";
     };
+    meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
 
   vim-racer = buildVimPluginFrom2Nix {
@@ -5225,6 +5698,7 @@ let
       rev = "950b78f36e568134f5dcabc9a146c61e0084d220";
       sha256 = "0k62yybilh2052w6zfscw7daz7y1qnqv1311zngjim5z8xmp7j1l";
     };
+    meta.homepage = "https://github.com/racer-rust/vim-racer/";
   };
 
   vim-repeat = buildVimPluginFrom2Nix {
@@ -5236,6 +5710,7 @@ let
       rev = "c947ad2b6a16983724a0153bdf7f66d7a80a32ca";
       sha256 = "00hhbqcx21j0738ad5xh92lsykpa0qxhdy1s7wnwc8d3jndmyjwb";
     };
+    meta.homepage = "https://github.com/tpope/vim-repeat/";
   };
 
   vim-rhubarb = buildVimPluginFrom2Nix {
@@ -5247,17 +5722,19 @@ let
       rev = "5130596a65330a4e8523d3ac1582f6c31ea6bc63";
       sha256 = "1hpyxcmwrjxhkgkb0w2qpg8gh9bgiqwddyj4zx8hy2g8qnx7z5yj";
     };
+    meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
 
   vim-rooter = buildVimPluginFrom2Nix {
     pname = "vim-rooter";
-    version = "2020-02-17";
+    version = "2020-04-17";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-rooter";
-      rev = "8a0a201a17fae3f7656b99f74d67741986faba37";
-      sha256 = "1r8kzzljs39ycc6jjh5anpl2gw73c2wb1bs8hjv6xnw1scln6gwq";
+      rev = "d64f3e04df9914e784508019a1a1f291cbb40bd4";
+      sha256 = "1vwydkjm5h12kcnqmg2cv1cqf9hmhmyy2lx5lj3g0g6ra27yfjnw";
     };
+    meta.homepage = "https://github.com/airblade/vim-rooter/";
   };
 
   vim-rsi = buildVimPluginFrom2Nix {
@@ -5269,17 +5746,19 @@ let
       rev = "ad8ba6beae8e82339479104b914214a868c9f1fe";
       sha256 = "1ycjwnbs6rks78yxh0k0ywpvic0663mv7kydy3kjpa4f5bnkgbvc";
     };
+    meta.homepage = "https://github.com/tpope/vim-rsi/";
   };
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2020-04-12";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "3db19e235bff9e6f6e0941836f67416dc761be32";
-      sha256 = "045b2gcmbm5kc4c3kalkjc36ck9llrbxjj2amga0041svgzb79sy";
+      rev = "fd49b25e08618b58db678c3f8ce6e443b1ad04e7";
+      sha256 = "086pzicqal2cmvbrzy09d93c7cz5scgjcqc9xn4cw19dn55irllp";
     };
+    meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
 
   vim-salve = buildVimPluginFrom2Nix {
@@ -5291,6 +5770,7 @@ let
       rev = "876104d364420a7a11a2d97729dd4ab0a2f8a72e";
       sha256 = "1hj0qg182jv3cwg85rg4z0f8f8hr409is71z7sxhnhjq9fn1h6xj";
     };
+    meta.homepage = "https://github.com/tpope/vim-salve/";
   };
 
   vim-sandwich = buildVimPluginFrom2Nix {
@@ -5302,6 +5782,7 @@ let
       rev = "02e3b6d1ff9ce346c115166855137b318b63c536";
       sha256 = "1jd5i0ykvwf5jnm3g3rm2r0zn64xqk38p2xl55la9a1a99j9mfxh";
     };
+    meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
 
   vim-sayonara = buildVimPluginFrom2Nix {
@@ -5313,6 +5794,7 @@ let
       rev = "357135ce127581fab2c0caf45d4b3fec4603aa77";
       sha256 = "0m4pbpqq7m4rbqj1sxzx3r25znm9m5df6z6kndc6x5c1p27a63pi";
     };
+    meta.homepage = "https://github.com/mhinz/vim-sayonara/";
   };
 
   vim-scala = buildVimPluginFrom2Nix {
@@ -5324,6 +5806,7 @@ let
       rev = "bbdfea4b98fdb8866a8a6060ec1294643cfeb413";
       sha256 = "14q8j6vwqad2nwia29d0844v2zdcx04xn9dyicv13sdpivzcm4rb";
     };
+    meta.homepage = "https://github.com/derekwyatt/vim-scala/";
   };
 
   vim-scouter = buildVimPluginFrom2Nix {
@@ -5335,6 +5818,7 @@ let
       rev = "5221901d4ad6b2ef8b370b336db2aa7f69f2b6dc";
       sha256 = "0fx64hj1kzrsxz96195d5lm3x88zyycbcr78819mcbgfzyxis6b8";
     };
+    meta.homepage = "https://github.com/thinca/vim-scouter/";
   };
 
   vim-scriptease = buildVimPluginFrom2Nix {
@@ -5346,6 +5830,7 @@ let
       rev = "86f49aca266e4b17420bcadd29009997d15668d8";
       sha256 = "0kcv5q4qahqd316h5k81xnf8skn71126x4lw2i6wa2m2653d0k5c";
     };
+    meta.homepage = "https://github.com/tpope/vim-scriptease/";
   };
 
   vim-sensible = buildVimPluginFrom2Nix {
@@ -5357,6 +5842,7 @@ let
       rev = "2d9f34c09f548ed4df213389caa2882bfe56db58";
       sha256 = "153i3kh44ri046va3qdrbvvsv7gy25fsd9pc2yhrg23lvj169zfp";
     };
+    meta.homepage = "https://github.com/tpope/vim-sensible/";
   };
 
   vim-sexp = buildVimPluginFrom2Nix {
@@ -5368,6 +5854,7 @@ let
       rev = "12292941903d9ac8151513189d2007e1ccfc95f0";
       sha256 = "1mfqbmrbqgnsc34pmcsrc0c5zvgxhhnw4hx4g5wbssfk1ddyx6y0";
     };
+    meta.homepage = "https://github.com/guns/vim-sexp/";
   };
 
   vim-sexp-mappings-for-regular-people = buildVimPluginFrom2Nix {
@@ -5379,6 +5866,7 @@ let
       rev = "7c3de2f13422fb4b62b4c34a660532c7b3d240c7";
       sha256 = "0malswal9hnbq2wf1rx2lp1r69wpwsvyhgi46xbg079x2n857bmj";
     };
+    meta.homepage = "https://github.com/tpope/vim-sexp-mappings-for-regular-people/";
   };
 
   vim-signature = buildVimPluginFrom2Nix {
@@ -5390,6 +5878,7 @@ let
       rev = "6bc3dd1294a22e897f0dcf8dd72b85f350e306bc";
       sha256 = "08m5dg77yavria7n7iajkj4kqaw848763680003j2gbrjlhpprpm";
     };
+    meta.homepage = "https://github.com/kshenoy/vim-signature/";
   };
 
   vim-signify = buildVimPluginFrom2Nix {
@@ -5401,6 +5890,7 @@ let
       rev = "56db16f8d3825c4d066c2faf05315c2b208cd5f5";
       sha256 = "0alargsa6sxdxha6jshax7ff6jy8svzc9yxvsh83f8301zx9vmra";
     };
+    meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
 
   vim-slash = buildVimPluginFrom2Nix {
@@ -5412,6 +5902,7 @@ let
       rev = "31aee09b7ea8893a18fa34f65e63e364fc998444";
       sha256 = "0ifdd3yqbk8hdvdmr4k44967lyvjnv9ig3r2145wn1lab797sbl4";
     };
+    meta.homepage = "https://github.com/junegunn/vim-slash/";
   };
 
   vim-sleuth = buildVimPluginFrom2Nix {
@@ -5423,6 +5914,7 @@ let
       rev = "ea3f065f23cd0592062b8226c8fef08b6af3b459";
       sha256 = "17w4m6zg1izcs75isy1jdzycgdr1ml1f5wqf1bjq80qgy3f28znp";
     };
+    meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
 
   vim-slime = buildVimPluginFrom2Nix {
@@ -5434,6 +5926,7 @@ let
       rev = "a81139239d6447b1c021e4873e6a14b47f32b65a";
       sha256 = "0wavkm9k2vm23nm5bmc3lpm6cac7mihzjcyk4r77qgdgmnnxkm49";
     };
+    meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
 
   vim-smalls = buildVimPluginFrom2Nix {
@@ -5445,6 +5938,7 @@ let
       rev = "9619eae81626bd63f88165e0520c467698264e34";
       sha256 = "0s5z3zv220cg95yky2av6w0jmpc56ysyhsx0596ksvgz5jwhpbad";
     };
+    meta.homepage = "https://github.com/t9md/vim-smalls/";
   };
 
   vim-smt2 = buildVimPluginFrom2Nix {
@@ -5456,6 +5950,7 @@ let
       rev = "9582e37b1dfd75621e51a3ac2275b6c6c895317f";
       sha256 = "0cas6c3pj55qhbcy2vaygg8l9gncjshi1g0a54l78x73d3y3wm03";
     };
+    meta.homepage = "https://github.com/bohlender/vim-smt2/";
   };
 
   vim-sneak = buildVimPluginFrom2Nix {
@@ -5467,6 +5962,7 @@ let
       rev = "98a5c946d6dc76528b9d9b044059b5ef1fab5a48";
       sha256 = "0xcxr658i5vzdkxfssd7zx6n3ar9b6dg4b2ddaswgnwq75xphrh9";
     };
+    meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
 
   vim-snipmate = buildVimPluginFrom2Nix {
@@ -5478,17 +5974,19 @@ let
       rev = "b80367fefc2188c9d6c4a9eb1830360b09e13476";
       sha256 = "0qq81hcavmaq76r38qfy1cxlmhj0aswbd41k2k9fyzilzq4r0bg8";
     };
+    meta.homepage = "https://github.com/garbas/vim-snipmate/";
   };
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-04-03";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "b62dfce8449d8a8196720ddd3cfecbca8bb7fe45";
-      sha256 = "1c8r8hw4yqdnmn4nx37vdrjwc725qqr5rbzzxq8wl0min5c4lq1c";
+      rev = "dbfffb971b46bfb9bc90763d4ccad97e3277cd7b";
+      sha256 = "0rmpf1lrrq57pai2vn0q9qig73kdq7l54iar1qk46f7wxy3wi1dw";
     };
+    meta.homepage = "https://github.com/honza/vim-snippets/";
   };
 
   vim-solidity = buildVimPluginFrom2Nix {
@@ -5500,6 +5998,7 @@ let
       rev = "569bbbedc3898236d5912fed0caf114936112ae4";
       sha256 = "1qpfbbrm4gjgvbkimhpxyl4fsdqkyw4raf17nw0ibqillz2d3pxx";
     };
+    meta.homepage = "https://github.com/tomlion/vim-solidity/";
   };
 
   vim-sort-motion = buildVimPluginFrom2Nix {
@@ -5511,6 +6010,7 @@ let
       rev = "49dfcabeee2bf3a85a6cc0774b35f687b6c9d0e5";
       sha256 = "02v12iqy3gjhvh5aza6b6b3pfv2qkyyw83bxqjgbjj002f71ydkb";
     };
+    meta.homepage = "https://github.com/christoomey/vim-sort-motion/";
   };
 
   vim-sourcetrail = buildVimPluginFrom2Nix {
@@ -5522,6 +6022,7 @@ let
       rev = "0fd679321ce51f65a37d04e4ea9031be6eaed85d";
       sha256 = "1xgvvmah3zn22rjaa093vghwrchmpm5wj30lwwl6h398dyywz8bg";
     };
+    meta.homepage = "https://github.com/CoatiSoftware/vim-sourcetrail/";
   };
 
   vim-speeddating = buildVimPluginFrom2Nix {
@@ -5533,17 +6034,19 @@ let
       rev = "fe98cfaa7ea9c4b838d42a6830437c919eb55b4e";
       sha256 = "02875qswrmanr7b798ymlc7w60055q0av0qj3fh7fvpqhsqpg52k";
     };
+    meta.homepage = "https://github.com/tpope/vim-speeddating/";
   };
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2019-12-07";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "05122f08c6a553992f7b0a9ad88016a89f51548a";
-      sha256 = "09kg1zf5lmwlksqz11scnjazg5d862fjip48qakjbabf66f23svs";
+      rev = "593388d3dbe7bfdcc06a714550d3253442b2fc65";
+      sha256 = "1k0sgx8r3gi3k4ira1ilvc1jmj0k5apiv7x71dqnh41gfrz1i12h";
     };
+    meta.homepage = "https://github.com/mhinz/vim-startify/";
   };
 
   vim-stylish-haskell = buildVimPluginFrom2Nix {
@@ -5555,6 +6058,7 @@ let
       rev = "ef12ab024cb3928ae57ce7c4fa519c4751afef99";
       sha256 = "0ysz68v4c2i4kxchsvxgkpj5kb0jbm5x06ri1ns9cmk5gj01pmd6";
     };
+    meta.homepage = "https://github.com/nbouscal/vim-stylish-haskell/";
   };
 
   vim-stylishask = buildVimPluginFrom2Nix {
@@ -5566,6 +6070,7 @@ let
       rev = "dcc12c724cec7f8aee7ad197752710eaa3bfd12c";
       sha256 = "09k1n6r9gy3jikss84y141dqqsgc1a1ia89jj0367an53pfl6dn2";
     };
+    meta.homepage = "https://github.com/alx741/vim-stylishask/";
   };
 
   vim-subversive = buildVimPluginFrom2Nix {
@@ -5577,6 +6082,7 @@ let
       rev = "4a2020248c8a09950b7e1a2cd864ffb88826572c";
       sha256 = "0pqrb3hz1hjl42khn4691s3ajlswk6nms43hdbglj679y28bkzfi";
     };
+    meta.homepage = "https://github.com/svermeulen/vim-subversive/";
   };
 
   vim-surround = buildVimPluginFrom2Nix {
@@ -5588,6 +6094,7 @@ let
       rev = "f51a26d3710629d031806305b6c8727189cd1935";
       sha256 = "0aqrqn35xdiy80y7skxfsh3m33n6cdxw6lzz6aspfgzwllx2f0kr";
     };
+    meta.homepage = "https://github.com/tpope/vim-surround/";
   };
 
   vim-swap = buildVimPluginFrom2Nix {
@@ -5599,6 +6106,7 @@ let
       rev = "e52ff679c88f4aa7a7afe77fb42af78c93ed33c8";
       sha256 = "0rqvxqqk961syawmyc2qdfb4w9ilb1r3mxxij2ja1jbhl1f3w4vq";
     };
+    meta.homepage = "https://github.com/machakann/vim-swap/";
   };
 
   vim-SyntaxRange = buildVimPluginFrom2Nix {
@@ -5610,17 +6118,19 @@ let
       rev = "dc33d8f84ebbf4c9fa03ce00b8adeb83e05249d3";
       sha256 = "0nf0hkgl5fm0laxb5253br894259kz33zyiwxzrry6w3108alasr";
     };
+    meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
   };
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2020-03-02";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "6412352b544bda764a9616c3090abb09729526bc";
-      sha256 = "1z5v849vjbk4mdgkxs73b2nnvmqx7l6h3ycdb16qdhp9kppwmbvv";
+      rev = "6a6f3565c3bd6ea903c9824b8e9367fcdeb7a7b5";
+      sha256 = "0vxkakix6r4x1a4ipzhpr7ix7fxz2bqaskwkpmgap12wy5qg3rzs";
     };
+    meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
 
   vim-tabpagecd = buildVimPluginFrom2Nix {
@@ -5632,6 +6142,7 @@ let
       rev = "8b71a03a037608fa5918f5096812577cec6355e4";
       sha256 = "1mr6s2hvsf2a2nkjjvq78c9isfxk2k1ih890w740srbq6ssj0npm";
     };
+    meta.homepage = "https://github.com/kana/vim-tabpagecd/";
   };
 
   vim-tbone = buildVimPluginFrom2Nix {
@@ -5643,6 +6154,7 @@ let
       rev = "82b0118772a87b659a6af49b26b0c4817ec7eccf";
       sha256 = "0pbj4v6zhlpcxm10jcq50jf2rpqiyp2x0zpxa50s6y6gm834v9wc";
     };
+    meta.homepage = "https://github.com/tpope/vim-tbone/";
   };
 
   vim-terraform = buildVimPluginFrom2Nix {
@@ -5654,17 +6166,19 @@ let
       rev = "89c47c6c68f6260ba34ee0733437d863046fbe95";
       sha256 = "1gkr3akvx44802i8cv4zw8j3bk5qk0h0rgz5k9jgkfch2yc76gzg";
     };
+    meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2020-04-09";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "janko";
       repo = "vim-test";
-      rev = "692b4b879520299ceffeaebb9b28173b75bf48da";
-      sha256 = "0lkng56y1wi29jp595jx5vib9zmnsagjczsdl434dn3hakm76plq";
+      rev = "42c216487a2a13dce04e84534461cc1cf96fa774";
+      sha256 = "0912d62frdjm488sybhafl113xh4npylzk0gzblbgdi0fl2f9i52";
     };
+    meta.homepage = "https://github.com/janko/vim-test/";
   };
 
   vim-textobj-comment = buildVimPluginFrom2Nix {
@@ -5676,6 +6190,7 @@ let
       rev = "58ae4571b76a5bf74850698f23d235eef991dd4b";
       sha256 = "00wc14chwjfx95gl3yzbxm1ajx88zpzqz0ckl7xvd7gvkrf0mx04";
     };
+    meta.homepage = "https://github.com/glts/vim-textobj-comment/";
   };
 
   vim-textobj-function = buildVimPluginFrom2Nix {
@@ -5687,6 +6202,7 @@ let
       rev = "adb50f38499b1f558cbd58845e3e91117e4538cf";
       sha256 = "0cwl102si9zhhhpg6c0fjnyq35v6bl5f34p2s7b47isxdn0qvris";
     };
+    meta.homepage = "https://github.com/kana/vim-textobj-function/";
   };
 
   vim-textobj-haskell = buildVimPluginFrom2Nix {
@@ -5698,6 +6214,7 @@ let
       rev = "ca656e98ea31e201f5bc543909398a6c8bb5d537";
       sha256 = "096pjjl3ngw0hsh59j2x6pdrpqvp657rcxfyl9kw13ndqyd867xs";
     };
+    meta.homepage = "https://github.com/gibiansky/vim-textobj-haskell/";
   };
 
   vim-textobj-multiblock = buildVimPluginFrom2Nix {
@@ -5709,6 +6226,7 @@ let
       rev = "670a5ba57d73fcd793f480e262617c6eb0103355";
       sha256 = "1s71hdr73cl8yg9mrdflvzrdccpiv7qrlainai7gqw30r1hfhfzf";
     };
+    meta.homepage = "https://github.com/osyo-manga/vim-textobj-multiblock/";
   };
 
   vim-textobj-user = buildVimPluginFrom2Nix {
@@ -5720,6 +6238,7 @@ let
       rev = "41a675ddbeefd6a93664a4dc52f302fe3086a933";
       sha256 = "1y1g3vcm97fqjyigiajbvbck4nlc04vxl3535x4sl40s5jbm5vz3";
     };
+    meta.homepage = "https://github.com/kana/vim-textobj-user/";
   };
 
   vim-textobj-variable-segment = buildVimPluginFrom2Nix {
@@ -5731,6 +6250,7 @@ let
       rev = "78457d4322b44bf89730e708b62b69df48c39aa3";
       sha256 = "14dcrnk83hj4ixrkdgjrk9cf0193f82wqckdzd4w0b76adf3habj";
     };
+    meta.homepage = "https://github.com/Julian/vim-textobj-variable-segment/";
   };
 
   vim-themis = buildVimPluginFrom2Nix {
@@ -5742,6 +6262,7 @@ let
       rev = "2d10aee9c9982f4f5974e88351934759c69640e7";
       sha256 = "06ab0kjamzpyql71qmc8qhvb72rx07x2g598aidk8nqkk36x87ai";
     };
+    meta.homepage = "https://github.com/thinca/vim-themis/";
   };
 
   vim-tmux = buildVimPluginFrom2Nix {
@@ -5753,6 +6274,7 @@ let
       rev = "4e77341a2f8b9b7e41e81e9debbcecaea5987c85";
       sha256 = "16fgc0lx1jr8zbayanf5w677ssiw5xb8vwfaca295c8xlk760c3m";
     };
+    meta.homepage = "https://github.com/tmux-plugins/vim-tmux/";
   };
 
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
@@ -5764,6 +6286,7 @@ let
       rev = "e80960715c09aef8ab9204848ed1683805a93a33";
       sha256 = "0ds6qw2i1r67jhxh9ff36al45bafsmbxxdc127l6iy2vl5wj0d3d";
     };
+    meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/";
   };
 
   vim-tmux-navigator = buildVimPluginFrom2Nix {
@@ -5775,6 +6298,7 @@ let
       rev = "8fdf78292bb3aed1c9de880be7e03efdbf23d306";
       sha256 = "0y92na4dcfcsj5zbs3m7y6csl3sd46a9968id78cdn9cgg8iwzac";
     };
+    meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
 
   vim-togglelist = buildVimPluginFrom2Nix {
@@ -5786,6 +6310,7 @@ let
       rev = "cafedc49860950200f28f2e1d95ab6a87b79d113";
       sha256 = "17y4ply2irz81gjv5hb51dy7wzv3l3sq6qaska31lswd5dgh1ifg";
     };
+    meta.homepage = "https://github.com/milkypostman/vim-togglelist/";
   };
 
   vim-toml = buildVimPluginFrom2Nix {
@@ -5797,6 +6322,7 @@ let
       rev = "a4ec206052aa347d7df90dc4b6697b7f2b7929bc";
       sha256 = "1dgykq4vl7vvj2f8lvg58rzqddm53i278g26ljwfimgqc8l6gmqd";
     };
+    meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
   vim-trailing-whitespace = buildVimPluginFrom2Nix {
@@ -5808,6 +6334,7 @@ let
       rev = "6b7cdecff252474fe560d32c6f05641f3c5952c7";
       sha256 = "0arv1hmlw7c1rlkc00hzjyg48pg8g4cc9q9l2hy8kpmsl037akm3";
     };
+    meta.homepage = "https://github.com/bronson/vim-trailing-whitespace/";
   };
 
   vim-tsx = buildVimPluginFrom2Nix {
@@ -5819,6 +6346,7 @@ let
       rev = "77c89c42e189fefd3c9a632b37b7e3b3b9edf918";
       sha256 = "0wmd6gql57bxp868sq2dchp9sc3jbisr4vaz4y0lczhmk0prds6n";
     };
+    meta.homepage = "https://github.com/ianks/vim-tsx/";
   };
 
   vim-twig = buildVimPluginFrom2Nix {
@@ -5830,6 +6358,7 @@ let
       rev = "ad115512725bcc156f7f89b72ff563b9fa44933b";
       sha256 = "1p7sfhk0mwx4xk88b29ijb9nfbjwsf6hf3nab2ybcw291qaa75nj";
     };
+    meta.homepage = "https://github.com/lumiliet/vim-twig/";
   };
 
   vim-unimpaired = buildVimPluginFrom2Nix {
@@ -5841,6 +6370,7 @@ let
       rev = "08e66532bffed445c949ae0a0501940c000553ed";
       sha256 = "0sm5rv6z0s80l9c39hijhnfggvgmi24ac6d9a1k58pzjz6i9w2vr";
     };
+    meta.homepage = "https://github.com/tpope/vim-unimpaired/";
   };
 
   vim-vinegar = buildVimPluginFrom2Nix {
@@ -5852,6 +6382,7 @@ let
       rev = "fcce70f1403ba4101668a4c960c577bddbd00f06";
       sha256 = "0zxqdyla40xcp0ps362b85bqwl3mp4zfmfdggl0gwvgd5m949yk0";
     };
+    meta.homepage = "https://github.com/tpope/vim-vinegar/";
   };
 
   vim-visual-increment = buildVimPluginFrom2Nix {
@@ -5863,17 +6394,19 @@ let
       rev = "e50e8f7c062cec759f665278eb58535df1611a23";
       sha256 = "1gd6mxp9y80wf7nxcm02104l54gqz5k3dgv1h98jl9a7q9swb8y6";
     };
+    meta.homepage = "https://github.com/triglav/vim-visual-increment/";
   };
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2020-04-06";
+    version = "2020-04-21";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "4b8e769b52922a17de4ef0ddb7aeacc18386a246";
-      sha256 = "1xjcz3dzwxlpaw8pz8mjn1cfp9822c8yvjwws6m4bzalqr0a14a4";
+      rev = "5983497180ce1406997e5329f526f40f76b21121";
+      sha256 = "0hrc3kwrk65hdnapp056kxwzizifzdy9zsqn242d81nzymfa6353";
     };
+    meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
 
   vim-visualstar = buildVimPluginFrom2Nix {
@@ -5885,6 +6418,7 @@ let
       rev = "a18cd0e7a03311ac709595c1d261ed44b45c9098";
       sha256 = "0yz6ci4i84xxrgazjfa5nsj3q8733p0b6vwcljk1l7ghdfiflvy4";
     };
+    meta.homepage = "https://github.com/thinca/vim-visualstar/";
   };
 
   vim-vue = buildVimPluginFrom2Nix {
@@ -5896,6 +6430,7 @@ let
       rev = "c424294e769b26659176065f9713c395731f7b3a";
       sha256 = "1ig8qacavr15i6z7whlkf2ivw5smnqsw3jwhh4dg5q6037k1hjh1";
     };
+    meta.homepage = "https://github.com/posva/vim-vue/";
   };
 
   vim-wakatime = buildVimPluginFrom2Nix {
@@ -5907,6 +6442,7 @@ let
       rev = "dd74c71cd2ea23b4a6cba4b05c873983c16e297c";
       sha256 = "1dc04vmpv62x2rfnfad2y60l5xzpw0167pbii9kss6n6ra81gayr";
     };
+    meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
 
   vim-watchdogs = buildVimPluginFrom2Nix {
@@ -5918,6 +6454,7 @@ let
       rev = "8ee2af37095af08376ba2409da152c2a36a4ee90";
       sha256 = "1hvgqdcnnz09afbas5brwls2sifs8y78jmq44ldgsjny9l445df4";
     };
+    meta.homepage = "https://github.com/osyo-manga/vim-watchdogs/";
   };
 
   vim-which-key = buildVimPluginFrom2Nix {
@@ -5929,6 +6466,7 @@ let
       rev = "4b70b443ba5838b165f90e26f9ed628d7d05e11d";
       sha256 = "197rp20hngrq7qdlii0ai4vb81dlilah0q1wlil8hv3qcf4az7qr";
     };
+    meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
 
   vim-wordy = buildVimPluginFrom2Nix {
@@ -5940,6 +6478,7 @@ let
       rev = "f0391713fa83771d64b065868331ef4754d861ed";
       sha256 = "0v5cl3rrg2vrdb2al67hbh730rw8m2zvhb1vippv64k65mknkgp5";
     };
+    meta.homepage = "https://github.com/reedes/vim-wordy/";
   };
 
   vim-xdebug = buildVimPluginFrom2Nix {
@@ -5951,6 +6490,7 @@ let
       rev = "a4980fa65f7f159780593ee37c178281691ba2c4";
       sha256 = "1qh18r0sm4gh95sjbi2hnflvxdl4gk00jyy3n7z4i1gnx9ihxjqw";
     };
+    meta.homepage = "https://github.com/joonty/vim-xdebug/";
   };
 
   vim-xkbswitch = buildVimPluginFrom2Nix {
@@ -5962,6 +6502,7 @@ let
       rev = "b9839555f70d319b4e21fc7bc9b559d91cf1260a";
       sha256 = "1ql8yv8rxpr9j9phf4jddqs1j81vcb9gpp0p3fmy6f8nf4b26nvw";
     };
+    meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
 
   vim-yaml = buildVimPluginFrom2Nix {
@@ -5973,6 +6514,7 @@ let
       rev = "8fc9136a9c3f64b3e65bb6170391f9daf2c23056";
       sha256 = "08bg7mxvgrl070m0kk4rmain7h3rv712jj6lk9l808cfjzaw9343";
     };
+    meta.homepage = "https://github.com/stephpy/vim-yaml/";
   };
 
   vim-yapf = buildVimPluginFrom2Nix {
@@ -5984,6 +6526,7 @@ let
       rev = "b0c31bd73a6d1026765e659bd0a62c625ec057ad";
       sha256 = "0ncv6kjyywljsq5fz71rkmgmqxm7msyscgndnj055bnx5sh9wk80";
     };
+    meta.homepage = "https://github.com/mindriot101/vim-yapf/";
   };
 
   vim2hs = buildVimPluginFrom2Nix {
@@ -5995,6 +6538,7 @@ let
       rev = "f2afd55704bfe0a2d66e6b270d247e9b8a7b1664";
       sha256 = "18lqrl3hqb6cmizc04bbnsh8j0g761w2q8wascbzzfw80dmxy36b";
     };
+    meta.homepage = "https://github.com/dag/vim2hs/";
   };
 
   vimacs = buildVimPluginFrom2Nix {
@@ -6006,6 +6550,7 @@ let
       rev = "7b8e297722d55089f0f0535fe6422533c98112fb";
       sha256 = "0x92jcpdlvxhhdpwkv7ig9ya7s96yqjy6ms9xnx8djkf12xql16f";
     };
+    meta.homepage = "https://github.com/andrep/vimacs/";
   };
 
   vimagit = buildVimPluginFrom2Nix {
@@ -6017,6 +6562,7 @@ let
       rev = "bf7b16e99e075b019e56f2fbfb96c493ca3635e2";
       sha256 = "1f7gvlhrvvkf69y5vfrkvidhx8aa03n1aqmdhk9qjd6sglfg5w0i";
     };
+    meta.homepage = "https://github.com/jreybert/vimagit/";
   };
 
   vimelette = buildVimPluginFrom2Nix {
@@ -6028,6 +6574,7 @@ let
       rev = "662f47fe0da2625dc743532832fa39f490388fa7";
       sha256 = "094xyqba64dndgr5gfcqp6hy3siw90niyrrwz0avs924abss6adg";
     };
+    meta.homepage = "https://github.com/gotcha/vimelette/";
   };
 
   vimfiler-vim = buildVimPluginFrom2Nix {
@@ -6039,6 +6586,7 @@ let
       rev = "26d3fec10cb8921d510064411784301794229a93";
       sha256 = "0iv1smk0999sfm3iqdlpb2il74l01lxfahwg87g7h3gq9frky2wd";
     };
+    meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
 
   VimOrganizer = buildVimPluginFrom2Nix {
@@ -6050,6 +6598,7 @@ let
       rev = "cab0baf635eb9470e62d57d42f2d470180b06c8d";
       sha256 = "0qncr00xn7lj1i469fzjaaghhqrlyg5s2wj4v6625dhg98y0irix";
     };
+    meta.homepage = "https://github.com/hsitz/VimOrganizer/";
   };
 
   vimoutliner = buildVimPluginFrom2Nix {
@@ -6061,6 +6610,7 @@ let
       rev = "1031b16e6b0069229fe0f33a66489f81174fa4d9";
       sha256 = "1gn21b8yr0bjg0y1nidk13zcl4f6z8wkrxncgkd1hlc14d99jkg0";
     };
+    meta.homepage = "https://github.com/vimoutliner/vimoutliner/";
   };
 
   vimpreviewpandoc = buildVimPluginFrom2Nix {
@@ -6072,6 +6622,7 @@ let
       rev = "3b0a589140abf6cc5d19ad678a7f01822bbee34e";
       sha256 = "15yjr01wfnhaqw1k8bgxk04vvh76y13zfms66irpihw79f9yzxi9";
     };
+    meta.homepage = "https://github.com/tex/vimpreviewpandoc/";
   };
 
   vimproc-vim = buildVimPluginFrom2Nix {
@@ -6083,6 +6634,7 @@ let
       rev = "51f4664c92f0f1b121127c84d3b1c901e1c698f0";
       sha256 = "06nzh4x7j7j3nvw2s4m1gmds0z0bldxbizja91jd43qma9xnwvlk";
     };
+    meta.homepage = "https://github.com/Shougo/vimproc.vim/";
   };
 
   vimshell-vim = buildVimPluginFrom2Nix {
@@ -6094,17 +6646,19 @@ let
       rev = "ee683538f57aaf5094db9860f67f4957a763ffb4";
       sha256 = "0inf9xx6ni1scxkn0b78qq0234r0ybrwpphyzcafw7i8kzisbn26";
     };
+    meta.homepage = "https://github.com/Shougo/vimshell.vim/";
   };
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-04-11";
+    version = "2020-04-20";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "bd83ce759828c2bd0e210476717384002b9309ee";
-      sha256 = "086j0grj6pqidcl3gaxqcc7njgnzv5z4gshrlisr996dfzyrab2v";
+      rev = "f029f673b259206bb04ca71b97e68d9635b1c4ee";
+      sha256 = "16m7ab5sy0gb900bf6ydynm1bhi11w60qmscqc66cmmb2hjz0iq2";
     };
+    meta.homepage = "https://github.com/lervag/vimtex/";
   };
 
   vimux = buildVimPluginFrom2Nix {
@@ -6116,6 +6670,7 @@ let
       rev = "37f41195e6369ac602a08ec61364906600b771f1";
       sha256 = "0k7ymak2ag67lb4sf80y4k35zj38rj0jf61bf50i6h1bgw987pra";
     };
+    meta.homepage = "https://github.com/benmills/vimux/";
   };
 
   vimwiki = buildVimPluginFrom2Nix {
@@ -6127,6 +6682,7 @@ let
       rev = "64c9f3d36d632b1657616c06ea8f08f14cf6438d";
       sha256 = "0wwfl0bafwh9p8lzic75d0nl6v5dnpfid7fbiffr0i72agp0gcq7";
     };
+    meta.homepage = "https://github.com/vimwiki/vimwiki/";
   };
 
   vissort-vim = buildVimPluginFrom2Nix {
@@ -6138,17 +6694,19 @@ let
       rev = "75a5b08b64d2f762206bffd294066533891fa03c";
       sha256 = "0a71b22apkhicca9nkd06jlcnqkf583mlpfh2mvl4d474viavqfn";
     };
+    meta.homepage = "https://github.com/navicore/vissort.vim/";
   };
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-04-12";
+    version = "2020-04-19";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "5399f850c4c0a1224051e84f6a6cee93055e4e6a";
-      sha256 = "13lh8wbyi9gwdn4mj5c88w4jp9jfi2zzxzdlccra67yrb1n3qymj";
+      rev = "02b128dd37a63f82732c3a0a9db9b24430ad56af";
+      sha256 = "1zmf9yrpxynbvajkv52z3njgzh89j4qx6w8ppnl7bkf4r85k09hl";
     };
+    meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
 
   Vundle-vim = buildVimPluginFrom2Nix {
@@ -6160,6 +6718,7 @@ let
       rev = "b255382d6242d7ea3877bf059d2934125e0c4d95";
       sha256 = "0fkmklcq3fgvd6x6irz9bgyvcdaxafykk3k89gsi9p6b0ikw3rw6";
     };
+    meta.homepage = "https://github.com/VundleVim/Vundle.vim/";
   };
 
   wal-vim = buildVimPluginFrom2Nix {
@@ -6171,6 +6730,7 @@ let
       rev = "10f228ce1e7947f62be412f916229131b7710239";
       sha256 = "0aiwsrcqnazam56cvwmck4bf7w543cr219bkmq0ngqzna72h9735";
     };
+    meta.homepage = "https://github.com/dylanaraps/wal.vim/";
   };
 
   webapi-vim = buildVimPluginFrom2Nix {
@@ -6182,6 +6742,7 @@ let
       rev = "10b8e926d85a3ab689c2966a3df1139bcb4e197f";
       sha256 = "1hbm2mgsncqdjjfgabgncr4ji90mjsa3z0cx7813vdf113v41x26";
     };
+    meta.homepage = "https://github.com/mattn/webapi-vim/";
   };
 
   wmgraphviz-vim = buildVimPluginFrom2Nix {
@@ -6193,6 +6754,7 @@ let
       rev = "f08ff5becd1e6e81d681ff2926f2cce29f63cb18";
       sha256 = "12mb0lbkrzrxyawd9gg6igmsaylvsixcslim0lcgsrd551l9lq2l";
     };
+    meta.homepage = "https://github.com/wannesm/wmgraphviz.vim/";
   };
 
   wombat256-vim = buildVimPluginFrom2Nix {
@@ -6204,6 +6766,7 @@ let
       rev = "8734ba45dcf5e38c4d2686b35c94f9fcb30427e2";
       sha256 = "01fdvfwdfqn5xi88lfanb4lb6jmn1ma6wq6d9jj2x7qamdbpvsrg";
     };
+    meta.homepage = "https://github.com/vim-scripts/wombat256.vim/";
   };
 
   workflowish = buildVimPluginFrom2Nix {
@@ -6215,6 +6778,7 @@ let
       rev = "65472189814dddd060aaa558103d837c2f9a5ec9";
       sha256 = "044jxkcbycmmahi98qd0ynpc8baay72i45qymv4mxvl1d96fjbmd";
     };
+    meta.homepage = "https://github.com/lukaszkorecki/workflowish/";
   };
 
   xptemplate = buildVimPluginFrom2Nix {
@@ -6226,6 +6790,7 @@ let
       rev = "79d650bad58b9c896ec47785f8a0c7b603105c2d";
       sha256 = "1myxp0ldk0s46aipx1iswa9zx2fkc4gwqpmhbswqgg7sxl1bz30g";
     };
+    meta.homepage = "https://github.com/drmingdrmer/xptemplate/";
   };
 
   xterm-color-table-vim = buildVimPluginFrom2Nix {
@@ -6237,6 +6802,7 @@ let
       rev = "9754e857e5f4fe1f8727106dcc682d21c29a51e4";
       sha256 = "08a1d9428xwrjp40qgi34cb5fwgc239qf3agxl32k7bqbn08pq19";
     };
+    meta.homepage = "https://github.com/guns/xterm-color-table.vim/";
   };
 
   YankRing-vim = buildVimPluginFrom2Nix {
@@ -6248,30 +6814,33 @@ let
       rev = "28854abef8fa4ebd3cb219aefcf22566997d8f65";
       sha256 = "0zdp8pdsqgrh6lfw8ipjhrig6psvmdxkim9ik801y3r373sk2hxw";
     };
+    meta.homepage = "https://github.com/vim-scripts/YankRing.vim/";
   };
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-04-12";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "d5c60217a27bba799b0ed5a2f16c61ea0a9b314e";
-      sha256 = "1km829m6aa3pfgq6p0p0gb102w1b5w454iy8smz1zwipsc84zgp7";
+      rev = "7978f7d52e1cfbdba1d17951c7bd4be527807e4e";
+      sha256 = "0fiqbnqsyr743vxm8km4q7yyd26anya1yi89gkzjipq2vgpqx7hn";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
   };
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2020-04-06";
+    version = "2020-04-18";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "97150c0b1fde6a7e3f3eea0abab7d114774dd1af";
-      sha256 = "16lwi234cwnp8f5gr8cry40ak2y71f6a7rbqnkq92smmw38fycnq";
+      rev = "367c1518cd6f2c8695000924b8ec2815a30a9af3";
+      sha256 = "0c8982qj93b8rcb4m7dfczscqyfhv2y672irrrpg0kb2yxiwk51m";
       fetchSubmodules = true;
     };
+    meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
   };
 
   YUNOcommit-vim = buildVimPluginFrom2Nix {
@@ -6283,6 +6852,7 @@ let
       rev = "981082055a73ef076d7e27477874d2303153a448";
       sha256 = "0mjc7fn405vcx1n7vadl98p5wgm6jxrlbdbkqgjq8f1m1ir81zab";
     };
+    meta.homepage = "https://github.com/esneider/YUNOcommit.vim/";
   };
 
   zeavim-vim = buildVimPluginFrom2Nix {
@@ -6294,6 +6864,7 @@ let
       rev = "298e52ad683680b4aa19b53d009cf0e6b9197664";
       sha256 = "1qj6z0vd7y89wfwh84rndl4iz6cvilncih2fc5xgmljaarg914fs";
     };
+    meta.homepage = "https://github.com/KabbAmine/zeavim.vim/";
   };
 
   zenburn = buildVimPluginFrom2Nix {
@@ -6305,6 +6876,7 @@ let
       rev = "ec6f369a000602e37e7c066b725f9d6bd12538f4";
       sha256 = "1ff5ac8lp7fq854kgf03c5h695lm60giw0qda5z428mmzwq0xask";
     };
+    meta.homepage = "https://github.com/jnurmine/zenburn/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
@@ -6316,6 +6888,7 @@ let
       rev = "0e914f2ab5ab9a9554c31b90be189dca5c4ee3a8";
       sha256 = "1njf3flx5dcahvk92kaf879sd4a75yq4nnii4ljip7bvkyci8ipa";
     };
+    meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
 
   zoomwintab-vim = buildVimPluginFrom2Nix {
@@ -6327,6 +6900,7 @@ let
       rev = "63a70b9e12617d6565a0489c68efe44708d19cf8";
       sha256 = "1dsi2d6wrv5x6w2hrrjzqivsspxxav0hdj0pymml6gry2jcbj4s9";
     };
+    meta.homepage = "https://github.com/troydm/zoomwintab.vim/";
   };
 
 });
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 7333b61deae..66e956a0f16 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -22,7 +22,7 @@
 # vim-go dependencies
 , asmfmt, delve, errcheck, godef, golint
 , gomodifytags, gotags, gotools, go-motion
-, gnused, reftools, gogetdoc, gometalinter
+, gnused, reftools, gogetdoc, golangci-lint
 , impl, iferr, gocode, gocode-gomod, go-tools
 
 # direnv-vim dependencies
@@ -57,16 +57,16 @@ self: super: {
   };
 
   LanguageClient-neovim = let
-    version = "0.1.156";
+    version = "0.1.157";
     LanguageClient-neovim-src = fetchurl {
       url = "https://github.com/autozimu/LanguageClient-neovim/archive/${version}.tar.gz";
-      sha256 = "0bf2va6lpgw7wqpwpfidijbzphhvw48hyc2b529qv12vwgnd1shq";
+      sha256 = "1ccq5akkm8n612ni5g7w7v5gv73g7p1d9i92k0bnsy33fvi3pmnh";
     };
     LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
       name = "LanguageClient-neovim-bin";
       src = LanguageClient-neovim-src;
 
-      cargoSha256 = "0w66fcrlaxf6zgkrfpgfybfbm759fzimnr3pjq6sm14frar7lhr6";
+      cargoSha256 = "0r3f7sixkvgfrw0j81bxj1jpam5si9dnivrw63s29cvjxrdbnmqz";
       buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
       # FIXME: Use impure version of CoreFoundation because of missing symbols.
@@ -550,7 +550,7 @@ self: super: {
       godef
       gogetdoc
       golint
-      gometalinter
+      golangci-lint
       gomodifytags
       gotags
       gotools
diff --git a/pkgs/misc/vim-plugins/update.py b/pkgs/misc/vim-plugins/update.py
index c6bf605ee47..84d57133d22 100755
--- a/pkgs/misc/vim-plugins/update.py
+++ b/pkgs/misc/vim-plugins/update.py
@@ -414,6 +414,7 @@ let
       rev = "{plugin.commit}";
       sha256 = "{plugin.sha256}";{submodule_attr}
     }};
+    meta.homepage = "https://github.com/{owner}/{repo}/";
   }};
 """
             )
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 5769db505d8..d42da3bbc5b 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -4,16 +4,16 @@
   "dependencies": {
     "jsonc-parser": "^2.2.1",
     "node-fetch": "^2.6.0",
-    "vscode-languageclient": "6.1.3",
+    "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.43.0",
-    "@typescript-eslint/eslint-plugin": "^2.26.0",
-    "@typescript-eslint/parser": "^2.26.0",
+    "@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.2",
+    "rollup": "^2.3.3",
     "tslib": "^1.11.1",
     "typescript": "^3.8.3",
     "typescript-formatter": "^7.2.2",
diff --git a/pkgs/os-specific/linux/kernel/hardened-patches.json b/pkgs/os-specific/linux/kernel/hardened-patches.json
index 97fbbb405e3..eecb27cdb66 100644
--- a/pkgs/os-specific/linux/kernel/hardened-patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened-patches.json
@@ -1,27 +1,27 @@
 {
-    "4.14.176": {
+    "4.14": {
+        "name": "linux-hardened-4.14.176.a.patch",
         "sha256": "0pr3m2j63mc746fcbzg1hlwv85im9f87qkl6r4033gwnpa9brcgk",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.176.a/linux-hardened-4.14.176.a.patch",
-        "version_suffix": "a"
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.176.a/linux-hardened-4.14.176.a.patch"
     },
-    "4.19.116": {
-        "sha256": "00y4i905gzs9w9kckrn1frh2vw32fsndz03g2psl1gk17snc3q7c",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.116.a/linux-hardened-4.19.116.a.patch",
-        "version_suffix": "a"
+    "4.19": {
+        "name": "linux-hardened-4.19.117.a.patch",
+        "sha256": "0c8dvh49nzypxwvsls10i896smvpdrk40x8ybljb3qk3r8j7niaw",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.117.a/linux-hardened-4.19.117.a.patch"
     },
-    "5.4.33": {
-        "sha256": "1hjfvhyvz5kyvx25809brhsvfv9mjv9q1mw6ydb71gfwhw6q8d8b",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.33.a/linux-hardened-5.4.33.a.patch",
-        "version_suffix": "a"
+    "5.4": {
+        "name": "linux-hardened-5.4.34.a.patch",
+        "sha256": "1xwpqr9nzpjg837b3wnzb8fmrl2g9rz8gz5yb55vnnllbzbz36v6",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.34.a/linux-hardened-5.4.34.a.patch"
     },
-    "5.5.18": {
-        "sha256": "0v7vla784sf1fk6d8qa5x8hkyhjb1jkw4lxxcgvvlqbmxl8md8ld",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.5.18.a/linux-hardened-5.5.18.a.patch",
-        "version_suffix": "a"
+    "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.5": {
-        "sha256": "19cdpygm5zx3szxl456lfjg5sffqcmn18470wv7prm8rf6liqdj3",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.5.a/linux-hardened-5.6.5.a.patch",
-        "version_suffix": "a"
+    "5.6": {
+        "name": "linux-hardened-5.6.6.a.patch",
+        "sha256": "0jiqh0frxirjbccgfdk007fca6r6n36n0pkqq4jszkckn59ayl7r",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.6.a/linux-hardened-5.6.6.a.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index cdb19fd54ab..ab3d1b1a719 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.116";
+  version = "4.19.118";
 
   # 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 = "0r3vdc3npl1bn06w9v6wsq7d5mm7bnhm9wsz36pb9ar3xhimvrlf";
+    sha256 = "15lcq3xky59v88vb8vvnmgcsmm1fadz0m4jyrii6rynsz5jr6x49";
   };
 } // (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 b2de6ea8689..08b28bc98dc 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.33";
+  version = "5.4.35";
 
   # 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 = "0q9q48ij6vppfcrdf7fr24pvpwsd13pxjkdni6rnjq9a60hrcmxm";
+    sha256 = "1m06k19pbb3wz8z2dgf03jvzbbdh6q8jwwdz509s902a53vxasz1";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.5.nix b/pkgs/os-specific/linux/kernel/linux-5.5.nix
index ecb92b5bfe7..96a349d985c 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.5.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.5.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.5.18";
+  version = "5.5.19";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "01iiiq4dsyyc5y6b52wax9as6dzhdi172vd1423sc1yp4rrk8178";
+    sha256 = "1sqiw9d25sqqzdh04dd722i7ff6kchj869jp4l8zalpvf51k6j0l";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.6.nix b/pkgs/os-specific/linux/kernel/linux-5.6.nix
index d3334293dc1..a31e6e26d3f 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.6.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.6.5";
+  version = "5.6.7";
 
   # 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 = "1rjjkcmzsj9azggh960qnk2x44ns475b8nbd4nxazrz1rgdx76zp";
+    sha256 = "1jljcva3gxg1yc2kw3jjgmhzzdm16nylzxl63zbndjza547l5813";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index d167a89ea83..b13791ccb99 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 = "17402";
-    sha256 = "1g151h6hdiwpvpip1r2rhbma8j13xghcyxddh0ppg9h548wwwack";
+    rev = "17445";
+    sha256 = "0d2gd2w4pbb728a7mw9dnq3aicwpjzg8zahg80ismvc9l1sym50a";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index e63fe96be6b..9e2ccaeae2b 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.6-rc7";
-  extraMeta.branch = "5.6";
+  version = "5.7-rc2";
+  extraMeta.branch = "5.7";
 
   # 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 = "0wv3ipfm970y2pyadwn5g7hd9bj117qk8jl8sdhrasbsy1p8936i";
+    sha256 = "06h7lrif84gyzblrdgg4cirsr2v69sdbymwkk89nr3gc87hnjlvs";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 69b0197d4e6..1c4af8c32a6 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -39,16 +39,9 @@
   };
 
   hardened = let
-    mkPatch = kernelVersion: patch: let
-      fullVersion = "${kernelVersion}.${patch.version_suffix}";
-      name = "linux-hardened-${fullVersion}";
-    in {
-      inherit name;
-      patch = fetchurl {
-        name = "${name}.patch";
-        inherit (patch) url sha256;
-        meta.maintainers = with lib.maintainers; [ emily ];
-      };
+    mkPatch = kernelVersion: src: {
+      name = lib.removeSuffix ".patch" src.name;
+      patch = fetchurl src;
     };
     patches = builtins.fromJSON (builtins.readFile ./hardened-patches.json);
   in lib.mapAttrs mkPatch patches;
diff --git a/pkgs/os-specific/linux/kernel/update-hardened.py b/pkgs/os-specific/linux/kernel/update-hardened.py
index 089e991d06b..7f6949653af 100755
--- a/pkgs/os-specific/linux/kernel/update-hardened.py
+++ b/pkgs/os-specific/linux/kernel/update-hardened.py
@@ -17,17 +17,7 @@ HERE = os.path.dirname(os.path.realpath(__file__))
 HARDENED_GITHUB_REPO = 'anthraxx/linux-hardened'
 HARDENED_TRUSTED_KEY = os.path.join(HERE, 'anthraxx.asc')
 HARDENED_PATCHES_PATH = os.path.join(HERE, 'hardened-patches.json')
-MIN_KERNEL = (4, 14)
-
-HARDENED_VERSION_RE = re.compile(r'''
-    (?P<kernel_version> [\d.]+) \.
-    (?P<version_suffix> [a-z]+)
-''', re.VERBOSE)
-
-def parse_version(version):
-    match = HARDENED_VERSION_RE.fullmatch(version)
-    if match:
-        return match.groups()
+MIN_KERNEL_VERSION = [4, 14]
 
 def run(*args, **kwargs):
     try:
@@ -78,11 +68,12 @@ def fetch_patch(*, name, release):
         except StopIteration:
             raise KeyError(filename)
 
+    patch_filename = f'{name}.patch'
     try:
-        patch_url = find_asset(f'{name}.patch')
-        sig_url = find_asset(f'{name}.patch.sig')
+        patch_url = find_asset(patch_filename)
+        sig_url = find_asset(patch_filename + '.sig')
     except KeyError:
-        print(f'error: {name}.patch{{,sig}} not present', file=sys.stderr)
+        print(f'error: {patch_filename}{{,.sig}} not present', file=sys.stderr)
         return None
 
     sha256, patch_path = nix_prefetch_url(patch_url)
@@ -97,16 +88,32 @@ def fetch_patch(*, name, release):
         return None
 
     return {
+        'name': patch_filename,
         'url': patch_url,
         'sha256': sha256,
     }
 
-def commit_patches(*, kernel_version, message):
+def parse_version(version_str):
+    version = []
+    for component in version_str.split('.'):
+        try:
+            version.append(int(component))
+        except ValueError:
+            version.append(component)
+    return version
+
+def version_string(version):
+    return '.'.join(str(component) for component in version)
+
+def major_kernel_version_key(kernel_version):
+    return version_string(kernel_version[:-1])
+
+def commit_patches(*, kernel_key, message):
     with open(HARDENED_PATCHES_PATH + '.new', 'w') as new_patches_file:
         json.dump(patches, new_patches_file, indent=4, sort_keys=True)
         new_patches_file.write('\n')
     os.rename(HARDENED_PATCHES_PATH + '.new', HARDENED_PATCHES_PATH)
-    message = f'linux/hardened-patches/{kernel_version}: {message}'
+    message = f'linux/hardened-patches/{kernel_key}: {message}'
     print(message)
     if os.environ.get('COMMIT'):
         run(
@@ -125,74 +132,96 @@ NIX_VERSION_RE = re.compile(r'''
 ''', re.VERBOSE)
 
 # Get the set of currently packaged kernel versions.
-kernel_versions = set()
+kernel_versions = {}
 for filename in os.listdir(HERE):
     filename_match = re.fullmatch(r'linux-(\d+)\.(\d+)\.nix', filename)
     if filename_match:
-        if tuple(int(v) for v in filename_match.groups()) < MIN_KERNEL:
-            continue
         with open(os.path.join(HERE, filename)) as nix_file:
             for nix_line in nix_file:
                 match = NIX_VERSION_RE.fullmatch(nix_line)
                 if match:
-                    kernel_versions.add(match.group('version'))
+                    kernel_version = parse_version(match.group('version'))
+                    if kernel_version < MIN_KERNEL_VERSION:
+                        continue
+                    kernel_key = major_kernel_version_key(kernel_version)
+                    kernel_versions[kernel_key] = kernel_version
 
-# Remove patches for old kernel versions.
-for kernel_version in patches.keys() - kernel_versions:
-    del patches[kernel_version]
-    commit_patches(kernel_version=kernel_version, message='remove')
+# Remove patches for unpackaged kernel versions.
+for kernel_key in sorted(patches.keys() - kernel_versions.keys()):
+    commit_patches(kernel_key=kernel_key, message='remove')
 
 g = Github(os.environ.get('GITHUB_TOKEN'))
 repo = g.get_repo(HARDENED_GITHUB_REPO)
-releases = repo.get_releases()
 
-found_kernel_versions = set()
 failures = False
 
-for release in releases:
-    remaining_kernel_versions = kernel_versions - found_kernel_versions
-
-    if not remaining_kernel_versions:
-        break
+# Match each kernel version with the best patch version.
+releases = {}
+for release in repo.get_releases():
+    version = parse_version(release.tag_name)
+    # needs to look like e.g. 5.6.3.a
+    if len(version) < 4:
+        continue
 
-    version = release.tag_name
-    name = f'linux-hardened-{version}'
-    version_info = parse_version(version)
-    if not version_info:
+    kernel_version = version[:-1]
+    kernel_key = major_kernel_version_key(kernel_version)
+    try:
+        packaged_kernel_version = kernel_versions[kernel_key]
+    except KeyError:
         continue
-    kernel_version, version_suffix = version_info
 
-    if kernel_version in remaining_kernel_versions:
-        found_kernel_versions.add(kernel_version)
-        try:
-            old_version_suffix = patches[kernel_version]['version_suffix']
-            old_version = f'{kernel_version}.{old_version_suffix}'
-            update = old_version_suffix < version_suffix
-        except KeyError:
-            update = True
-            old_version = None
-
-        if update:
-            patch = fetch_patch(name=name, release=release)
-            if patch is None:
-                failures = True
+    release_info = {
+        'version': version,
+        'release': release,
+    }
+
+    if kernel_version == packaged_kernel_version:
+        releases[kernel_key] = release_info
+    else:
+        # Fall back to the latest patch for this major kernel version,
+        # skipping patches for kernels newer than the packaged one.
+        if kernel_version > packaged_kernel_version:
+            continue
+        elif (kernel_key not in releases or
+                releases[kernel_key]['version'] < version):
+            releases[kernel_key] = release_info
+
+# Update hardened-patches.json for each release.
+for kernel_key, release_info in releases.items():
+    release = release_info['release']
+    version = release_info['version']
+    version_str = release.tag_name
+    name = f'linux-hardened-{version_str}'
+
+    try:
+        old_filename = patches[kernel_key]['name']
+        old_version_str = (old_filename
+            .replace('linux-hardened-', '')
+            .replace('.patch', ''))
+        old_version = parse_version(old_version_str)
+        update = old_version < version
+    except KeyError:
+        update = True
+        old_version = None
+
+    if update:
+        patch = fetch_patch(name=name, release=release)
+        if patch is None:
+            failures = True
+        else:
+            patches[kernel_key] = patch
+            if old_version:
+                message = f'{old_version_str} -> {version_str}'
             else:
-                patch['version_suffix'] = version_suffix
-                patches[kernel_version] = patch
-                if old_version:
-                    message = f'{old_version} -> {version}'
-                else:
-                    message = f'init at {version}'
-                commit_patches(kernel_version=kernel_version, message=message)
+                message = f'init at {version_str}'
+            commit_patches(kernel_key=kernel_key, message=message)
 
-missing_kernel_versions = kernel_versions - patches.keys()
+missing_kernel_versions = kernel_versions.keys() - patches.keys()
 
 if missing_kernel_versions:
     print(
         f'warning: no patches for kernel versions ' +
-        ', '.join(missing_kernel_versions) +
-        '\nwarning: consider manually backporting older patches (bump '
-        'JSON key, set version_suffix to "NixOS-a")',
+        ', '.join(missing_kernel_versions),
         file=sys.stderr,
     )
 
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
index d0aca3bbc82..616ad9c6764 100644
--- a/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkgconfig }:
+{ lib, stdenv, fetchFromGitHub, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
-  version = "1.10.1";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "linux-nvme";
     repo = "nvme-cli";
     rev = "v${version}";
-    sha256 = "12wp2wxmsw2v8m9bhvwvdbhdgx1md8iilhbl19sfzz2araiwi2x8";
+    sha256 = "06cxs41biqx230grvpk7zid3apcaajjywrccag50krb6h2wqafdl";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
@@ -20,8 +20,16 @@ stdenv.mkDerivation rec {
   installTargets = [ "install-spec" ];
 
   meta = with lib; {
-    inherit (src.meta) homepage;
+    inherit (src.meta) homepage; # https://nvmexpress.org/
     description = "NVM-Express user space tooling for Linux";
+    longDescription = ''
+      NVM-Express is a fast, scalable host controller interface designed to
+      address the needs for not only PCI Express based solid state drives, but
+      also NVMe-oF(over fabrics).
+      This nvme program is a user space utility to provide standards compliant
+      tooling for NVM-Express drives. It was made specifically for Linux as it
+      relies on the IOCTLs defined by the mainline kernel driver.
+    '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos tavyc ];
diff --git a/pkgs/os-specific/linux/zenstates/default.nix b/pkgs/os-specific/linux/zenstates/default.nix
new file mode 100644
index 00000000000..4ac77c00aa3
--- /dev/null
+++ b/pkgs/os-specific/linux/zenstates/default.nix
@@ -0,0 +1,54 @@
+# Zenstates provides access to a variety of CPU tunables no Ryzen processors.
+#
+# In particular, I am adding Zenstates because I need it to disable the C6
+# sleep state to stabilize wake from sleep on my Lenovo x395 system. After
+# installing Zenstates, I need a before-sleep script like so:
+#
+# before-sleep = pkgs.writeScript "before-sleep" ''
+#   #!${pkgs.bash}/bin/bash
+#   ${pkgs.zenstates}/bin/zenstates --c6-disable
+# '';
+#
+# ...
+#
+# systemd.services.before-sleep = {
+#     description = "Jobs to run before going to sleep";
+#     serviceConfig = {
+#       Type = "oneshot";
+#       ExecStart = "${before-sleep}";
+#     };
+#     wantedBy = [ "sleep.target" ];
+#     before = [ "sleep.target" ];
+#   };
+
+{ stdenv, fetchFromGitHub, python3 }:
+stdenv.mkDerivation rec {
+  pname = "zenstates";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "r4m0n";
+    repo = "ZenStates-Linux";
+    rev = "0bc27f4740e382f2a2896dc1dabfec1d0ac96818";
+    sha256 = "1h1h2n50d2cwcyw3zp4lamfvrdjy1gjghffvl3qrp6arfsfa615y";
+  };
+
+  buildInputs = [ python3 ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp $src/zenstates.py $out/bin/zenstates
+    chmod +x $out/bin/zenstates
+    patchShebangs --build $out/bin/zenstates
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Linux utility for Ryzen processors and motherboards";
+    homepage = "https://github.com/r4m0n/ZenStates-Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ savannidgerinel ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index b382d2891f9..74df3c16472 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.17.9";
-  sha256 = "12dnrdxwnlid0wr797vdxj9z1fmxnk7ib55bznvl2g3mbi05vmkx";
+  version = "1.18.0";
+  sha256 = "16azscl74ym1far0s0p6xsjin1k1cm4wk80i9x5d74dznmx3wdsc";
 }
diff --git a/pkgs/servers/http/nginx/stable.nix b/pkgs/servers/http/nginx/stable.nix
index 001ea60839a..c08615ef512 100644
--- a/pkgs/servers/http/nginx/stable.nix
+++ b/pkgs/servers/http/nginx/stable.nix
@@ -1,6 +1,6 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix args {
-  version = "1.16.1";
-  sha256 = "0az3vf463b538ajvaq94hsz9ipmjgnamfj1jy0v5flfks5njl77i";
+  version = "1.18.0";
+  sha256 = "16azscl74ym1far0s0p6xsjin1k1cm4wk80i9x5d74dznmx3wdsc";
 }
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index b5fec49b910..ce24cc7071f 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.2";
+  version = "9.0.3";
 
   src = fetchzip {
     url    = "https://downloads.jboss.org/keycloak/${version}/keycloak-${version}.zip";
-    sha256 = "0yavkmwhjb8i4j3g57nda77simlf1dj1m751xzbgxxq6nd0q73lw";
+    sha256 = "0nlfa6wwgj04xgg4ps5gpjp4iq2lmas97y5qz61lhns1p42xr4ls";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 87c6b6a6cc9..3962f7b2da8 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -23,11 +23,11 @@ let
 
 in buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.12.1";
+  version = "1.12.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l3a5dvnahrzwqh8p0cnfr019bxxgd769jk2wprfvfd65h7p0g1r";
+    sha256 = "0psr17ai42ma9923g9bj3q9fd8kph9rx7jpxsxwbfzr2y6lwr306";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index ac50717208a..66e534a0f9a 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "grafana";
-  version = "6.7.2";
+  version = "6.7.3";
 
   goPackagePath = "github.com/grafana/grafana";
 
@@ -12,12 +12,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "03f6f9caxphrfbps0ljwwiq246vfjlznd8xs7a7va7kb823ff5li";
+    sha256 = "14yrfrn59r3mxbkhs7mg7nlhnvvrmq959r8w4aj6m7wgr32jj8wl";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "0sgpc34jfldi0hkbqx9idkzm1n1jy82yhg29kdsvndxvi44z49lv";
+    sha256 = "17h70h6cz1bdhczjqa68kxzfm4vi95zdnqzah8hcjr7rwnx874kr";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index d0b413a10a0..e43e625e449 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,13 +1,13 @@
 { lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage }:
 
 let
-  version = "2.17.1";
+  version = "2.17.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "0ai9l7gx25x5m07617c0cjzwxknywwq822fn2q5b850hvs48whyv";
+    sha256 = "1q89c98rdypfcw8sqzipwlmxg8vrm4b9vdryygnacxv4am7bxsia";
   };
 
   webui = mkYarnPackage {
diff --git a/pkgs/servers/serviio/default.nix b/pkgs/servers/serviio/default.nix
index 6b1fdd10990..006c2fdff3e 100644
--- a/pkgs/servers/serviio/default.nix
+++ b/pkgs/servers/serviio/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "http://serviio.org";
+    homepage = "https://serviio.org";
     description = "UPnP Media Streaming Server";
     longDescription = ''
       Serviio is a free media server. It allows you to stream your media files (music, video or images)
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index ec325fc3e42..8ba7e9c96cf 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -125,7 +125,7 @@ let
     disallowedReferences = [ stdenv.cc ];
 
     passthru = {
-      inherit readline psqlSchema version;
+      inherit readline psqlSchema;
 
       pkgs = let
         scope = { postgresql = this; };
diff --git a/pkgs/servers/ttyd/default.nix b/pkgs/servers/ttyd/default.nix
index bee9b0e9a7c..b7fac5fc477 100644
--- a/pkgs/servers/ttyd/default.nix
+++ b/pkgs/servers/ttyd/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchFromGitHub
 , pkgconfig, cmake, xxd
-, openssl, libwebsockets, json_c, libuv
+, openssl, libwebsockets, json_c, libuv, zlib
 }:
 
 with builtins;
 
 stdenv.mkDerivation rec {
   pname = "ttyd";
-  version = "1.5.2";
+  version = "1.6.0";
   src = fetchFromGitHub {
     owner = "tsl0922";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "16nngc3dqrsgpapzvl34c0msgdd1fyp3k8r1jj1m9bch6z2p50bl";
+    sha256 = "08skw3h897jb71sbnglj571h35pcb1mikzlh71sx5imjgi4hfczr";
   };
 
   nativeBuildInputs = [ pkgconfig cmake xxd ];
-  buildInputs = [ openssl libwebsockets json_c libuv ];
+  buildInputs = [ openssl libwebsockets json_c libuv zlib ];
   enableParallelBuilding = true;
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/servers/web-apps/restya-board/default.nix b/pkgs/servers/web-apps/restya-board/default.nix
index 0dca4acc6b9..89e22b23361 100644
--- a/pkgs/servers/web-apps/restya-board/default.nix
+++ b/pkgs/servers/web-apps/restya-board/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Web-based kanban board";
     license = licenses.osl3;
-    homepage = "http://restya.com";
+    homepage = "https://restya.com";
     maintainers = with maintainers; [ tstrobel ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index f85a61be4a8..19fbff747fc 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -9,13 +9,13 @@
 
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.0.0";
+  version = "4.0.1";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "00kydp6aysggng9a7m0q3zj3591yk6jgcibbqxx4ki20pd4vmqnb";
+    sha256 = "0sxkyjayn7yyiy9kvbdlpkl58lwsl2rhlxnncg628f2kad2zgkdx";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
index 07ad2d95f14..c0547f0c0c8 100644
--- a/pkgs/tools/admin/pulumi/default.nix
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -17,10 +17,11 @@ in stdenv.mkDerivation {
   installPhase = ''
     mkdir -p $out/bin
     cp * $out/bin/
+  '' + optionalString stdenv.isLinux ''
     wrapProgram $out/bin/pulumi --set LD_LIBRARY_PATH "${stdenv.cc.cc.lib}/lib"
   '';
 
-  buildInputs = optionals stdenv.isLinux [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = optionals stdenv.isLinux [ autoPatchelfHook makeWrapper ];
 
   meta = {
     homepage = "https://pulumi.io/";
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index 9f105a7d5d5..0bb291d797b 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     rm -f $out/lib/xorg/protocol.txt
 
     wrapProgram $out/bin/vncserver \
-      --prefix PATH : ${stdenv.lib.makeBinPath (with xorg; [ xterm twm xsetroot ]) }
+      --prefix PATH : ${stdenv.lib.makeBinPath (with xorg; [ xterm twm xsetroot xauth ]) }
   '';
 
   buildInputs = with xorg; [
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index e41d9a2eb2d..3f0c2487c91 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, lib, enableUnfree ? false }:
 
 stdenv.mkDerivation rec {
   pname = "p7zip";
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     substituteInPlace makefile.machine \
       --replace 'CC=gcc'  'CC=${stdenv.cc.targetPrefix}gcc' \
       --replace 'CXX=g++' 'CXX=${stdenv.cc.targetPrefix}g++'
-  '' + ''
+  '' + lib.optionalString (!enableUnfree) ''
     # Remove non-free RAR source code
     # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
     rm -r CPP/7zip/Compress/Rar*
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.raskin ];
     # RAR code is under non-free UnRAR license, but we remove it
-    license = stdenv.lib.licenses.lgpl2Plus;
+    license = if enableUnfree then lib.licenses.unfree else lib.licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/tools/backup/httrack/qt.nix b/pkgs/tools/backup/httrack/qt.nix
index fe5b965e570..6ee7f6e6a21 100644
--- a/pkgs/tools/backup/httrack/qt.nix
+++ b/pkgs/tools/backup/httrack/qt.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, cmake, pkgconfig, makeWrapper
+{ mkDerivation, stdenv, fetchurl, cmake, pkgconfig, makeWrapper
 , httrack, qtbase, qtmultimedia }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "httraqt";
   version = "1.4.9";
 
diff --git a/pkgs/tools/backup/luckybackup/default.nix b/pkgs/tools/backup/luckybackup/default.nix
index 3e89be15391..7203ba480e6 100644
--- a/pkgs/tools/backup/luckybackup/default.nix
+++ b/pkgs/tools/backup/luckybackup/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl
+{ mkDerivation, stdenv, fetchurl
 , pkgconfig, libtool, qmake
 , rsync, ssh
 }:
 
 with stdenv.lib;
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "luckybackup";
   version = "0.5.0";
 
diff --git a/pkgs/tools/filesystems/ciopfs/default.nix b/pkgs/tools/filesystems/ciopfs/default.nix
index 5beff7bf1c5..8b633ecbe0f 100644
--- a/pkgs/tools/filesystems/ciopfs/default.nix
+++ b/pkgs/tools/filesystems/ciopfs/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
 
   meta = {
-    homepage = "http://www.brain-dump.org/projects/ciopfs/";
+    homepage = "https://www.brain-dump.org/projects/ciopfs/";
     description = "A case-insensitive filesystem layered on top of any other filesystem";
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/filesystems/darling-dmg/default.nix b/pkgs/tools/filesystems/darling-dmg/default.nix
index 3548cf0a3dc..43823e5b51a 100644
--- a/pkgs/tools/filesystems/darling-dmg/default.nix
+++ b/pkgs/tools/filesystems/darling-dmg/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
 
   meta = {
-    homepage = "http://www.darlinghq.org/";
+    homepage = "https://www.darlinghq.org/";
     description = "Darling lets you open macOS dmgs on Linux";
     platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl3;
diff --git a/pkgs/tools/graphics/pgf/default.nix b/pkgs/tools/graphics/pgf/default.nix
index 88684541fcc..d3f01fa7d1f 100644
--- a/pkgs/tools/graphics/pgf/default.nix
+++ b/pkgs/tools/graphics/pgf/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
 # configureFlags = optional static "--enable-static --disable-shared";
 
   meta = {
-    homepage = "http://www.libpgf.org/";
+    homepage = "https://www.libpgf.org/";
     description = "Progressive Graphics Format command line program";
     license = stdenv.lib.licenses.lgpl21Plus;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/graphics/rocket/default.nix b/pkgs/tools/graphics/rocket/default.nix
index 97c400fbc9e..683a2c73f45 100644
--- a/pkgs/tools/graphics/rocket/default.nix
+++ b/pkgs/tools/graphics/rocket/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, qmake, qtbase }:
+{ mkDerivation, stdenv, fetchFromGitHub, qmake, qtbase }:
 
-stdenv.mkDerivation {
+mkDerivation {
   pname = "rocket";
   version = "2018-06-09";
 
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index bf84502af2b..201ad5ed03f 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -4,17 +4,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname   = "bat";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1kaa6ps6v1wk9qs63h116k4pbz7y9mfbfxfbq7g89yjhzkjmh6xc";
+    sha256 = "0wxmn3ifrgpfq44xs747qqik2p2vazdw5zi4imxqap2krha4k2ms";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "01l1y124gjh6gf9z1jkbpfzh0w92hrgwvsmqkqdw3a9pa4w5f6yg";
+  cargoSha256 = "0bs6pqrg0vdam2h2ddikmgmksqlfjljqacc52rh6p546is6jcp2s";
 
   nativeBuildInputs = [ pkgconfig llvmPackages.libclang installShellFiles makeWrapper ];
 
diff --git a/pkgs/tools/misc/colord-kde/default.nix b/pkgs/tools/misc/colord-kde/default.nix
index 8897514783a..33686498112 100644
--- a/pkgs/tools/misc/colord-kde/default.nix
+++ b/pkgs/tools/misc/colord-kde/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, lib, fetchurl
+{ mkDerivation, lib, fetchurl
 , extra-cmake-modules, ki18n
 , kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kiconthemes, kcmutils
 , kio, knotifications, plasma-framework, kwidgetsaddons, kwindowsystem
 , kitemviews, lcms2, libXrandr, qtx11extras
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "colord-kde";
   version = "0.5.0";
 
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index 00ed2db1073..617d6675c68 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, php, which, gnused, makeWrapper, gnumake, gcc }:
+{ stdenv, fetchurl, php, which, gnused, makeWrapper, gnumake, gcc, callPackage }:
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
     --prefix PATH : ${stdenv.lib.makeBinPath [ gnumake gcc ]}
   '';
 
+  passthru.tests = {
+    simple-execution = callPackage ./tests.nix { };
+  };
+
   meta = with stdenv.lib; {
     description = "Open-Source, Automated Benchmarking";
     homepage = "https://www.phoronix-test-suite.com/";
diff --git a/pkgs/tools/misc/phoronix-test-suite/tests.nix b/pkgs/tools/misc/phoronix-test-suite/tests.nix
new file mode 100644
index 00000000000..06bd9def9aa
--- /dev/null
+++ b/pkgs/tools/misc/phoronix-test-suite/tests.nix
@@ -0,0 +1,20 @@
+{ runCommand, phoronix-test-suite }:
+
+let
+  inherit (phoronix-test-suite) pname version;
+in
+
+runCommand "${pname}-tests" { meta.timeout = 3; }
+  ''
+    # automatic initial setup to prevent interactive questions
+    ${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null
+    # get version of installed program and compare with package version
+    if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"*  ]]; then
+      echo "Error: program version does not match package version"
+      exit 1
+    fi
+    # run dummy command
+    ${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null
+    # needed for Nix to register the command as successful
+    touch $out
+  ''
diff --git a/pkgs/tools/misc/powerline-go/default.nix b/pkgs/tools/misc/powerline-go/default.nix
index 47336e54d67..077116767c3 100644
--- a/pkgs/tools/misc/powerline-go/default.nix
+++ b/pkgs/tools/misc/powerline-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "powerline-go";
-  version = "1.15.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "justjanne";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06i07m68l24v29j01qp2y91rwsfqh4x1nc8sxkjzrc7q1c7fsc1r";
+    sha256 = "135j18d53nhg6adjd2hax067c5f1py9fyprzfcr3plsxnaki2hrx";
   };
 
   modSha256 = "0mz1qrwar9cgrhrgw4z3gwhjj62bnfnn59ji31zkyvwlc1mqh9an";
diff --git a/pkgs/tools/misc/profile-sync-daemon/default.nix b/pkgs/tools/misc/profile-sync-daemon/default.nix
index ae70a82de4f..fd17de60f20 100644
--- a/pkgs/tools/misc/profile-sync-daemon/default.nix
+++ b/pkgs/tools/misc/profile-sync-daemon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, utillinux}:
+{ stdenv, fetchurl, utillinux, coreutils}:
 
 stdenv.mkDerivation rec {
   version = "6.36";
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
     # $HOME detection fails (and is unnecessary)
     sed -i '/^HOME/d' $out/bin/profile-sync-daemon
     substituteInPlace $out/bin/psd-overlay-helper \
-      --replace "PATH=/usr/bin:/bin" "PATH=${utillinux.bin}/bin"
+      --replace "PATH=/usr/bin:/bin" "PATH=${utillinux.bin}/bin:${coreutils}/bin" \
+      --replace "sudo " "/run/wrappers/bin/sudo " 
   '';
 
   preferLocalBuild = true;
diff --git a/pkgs/tools/misc/vdirsyncer/default.nix b/pkgs/tools/misc/vdirsyncer/default.nix
index ecf87b7c0a5..eee4e5648e9 100644
--- a/pkgs/tools/misc/vdirsyncer/default.nix
+++ b/pkgs/tools/misc/vdirsyncer/default.nix
@@ -53,6 +53,9 @@ python3Packages.buildPythonApplication rec {
     echo 'Version: ${version}' >PKG-INFO
 
     sed -i 's/spec.add_external_build(cmd=cmd/spec.add_external_build(cmd="true"/g' setup.py
+
+    # fixing test
+    sed -i "s/invalid value for \"--verbosity\"/invalid value for \\\'--verbosity\\\'/" tests/system/cli/test_sync.py
   '';
 
   preBuild = ''
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index 14617f207db..7870974531e 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, openssl, rustPlatform, Security }:
+{ stdenv, fetchFromGitHub, pkgconfig, openssl, rustPlatform, Security, makeWrapper, bash }:
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
@@ -14,9 +14,17 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "--features=ssl" ];
   cargoSha256 = "09chj0bgf4r8v5cjq0hvb84zvh98nrzrh1m0wdqjy5gi7zc30cis";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
+  # The wrapping is required so that the "sh-c" option of websocat works even
+  # if sh is not in the PATH (as can happen, for instance, when websocat is
+  # started as a systemd service).
+  postInstall = ''
+    wrapProgram $out/bin/websocat \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ bash ]}
+  '';
+
   meta = with stdenv.lib; {
     description = "Command-line client for WebSockets (like netcat/socat)";
     homepage = "https://github.com/vi/websocat";
diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix
index a2f486717da..debd918eb39 100644
--- a/pkgs/tools/networking/babeld/default.nix
+++ b/pkgs/tools/networking/babeld/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "babeld";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchurl {
     url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${pname}-${version}.tar.gz";
-    sha256 = "1d503igqv9s5pgrhvxp1czjy2xfsjhagyyh2iny7g4cjvl0kq6qy";
+    sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/networking/mosh/bash_completion_datadir.patch b/pkgs/tools/networking/mosh/bash_completion_datadir.patch
new file mode 100644
index 00000000000..4b71f125d28
--- /dev/null
+++ b/pkgs/tools/networking/mosh/bash_completion_datadir.patch
@@ -0,0 +1,19 @@
+diff --git a/configure.ac b/configure.ac
+index 3ad983d..ff8ff96 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -476,13 +476,7 @@ AS_IF([echo "$protobuf_LIBS" | grep -q -- -pthread],
+ 
+ # Bash completion needs to ask where it goes if >= 2.0 is installed.
+ AS_IF([test "$install_completion" != no],
+-  [PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
+-     [if test "$prefix" = "NONE"; then
+-        completions="`pkg-config --variable=completionsdir bash-completion`"
+-      else
+-        completions="`pkg-config --define-variable=prefix=$prefix --variable=completionsdir bash-completion`"
+-      fi],
+-     [completions="${sysconfdir}/bash_completion.d"])
++   [completions="`pkg-config --define-variable=datadir=$datadir --variable=completionsdir bash-completion`"]
+    AC_SUBST([completions])])
+ 
+ AC_CONFIG_FILES([
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index 648fdb9d20e..26c9035cd79 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
       url = "https://github.com/mobile-shell/mosh/commit/e5f8a826ef9ff5da4cfce3bb8151f9526ec19db0.patch";
       sha256 = "15518rb0r5w1zn4s6981bf1sz6ins6gpn2saizfzhmr13hw4gmhm";
     })
+    # Fix build with bash-completion 2.10
+    ./bash_completion_datadir.patch
   ];
   postPatch = ''
     substituteInPlace scripts/mosh.pl \
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 88ed0599c2c..09ad8db46ea 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -19,11 +19,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "openvpn";
-  version = "2.4.7";
+  version = "2.4.9";
 
   src = fetchurl {
     url = "https://swupdate.openvpn.net/community/releases/${pname}-${version}.tar.xz";
-    sha256 = "0j7na936isk9j8nsdrrbw7wmy09inmjqvsb8mw8az7k61xbm6bx4";
+    sha256 = "1qpbllwlha7cffsd5dlddb8rl22g9rar5zflkz1wrcllhvfkl7v4";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -33,13 +33,6 @@ in stdenv.mkDerivation rec {
                   ++ optional useSystemd systemd
                   ++ optional pkcs11Support pkcs11helper;
 
-  patches = [
-    ( fetchpatch {
-      url = "https://sources.debian.org/data/main/o/openvpn/2.4.7-1/debian/patches/fix-pkcs11-helper-hang.patch";
-      sha256 = "0c8jzbfsmb0mm9f7kkjxac1hk8q6igm267s687vx3mdqs1wys6bm";
-    })
-  ];
-
   configureFlags = optionals stdenv.isLinux [
     "--enable-iproute2"
     "IPROUTE=${iproute}/sbin/ip" ]
@@ -68,7 +61,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A robust and highly flexible tunneling application";
-    downloadPage = "https://openvpn.net/index.php/open-source/downloads.html";
+    downloadPage = "https://openvpn.net/community-downloads/";
     homepage = "https://openvpn.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ viric ];
diff --git a/pkgs/tools/networking/rtptools/default.nix b/pkgs/tools/networking/rtptools/default.nix
index a713331d7c2..5d439f183d2 100644
--- a/pkgs/tools/networking/rtptools/default.nix
+++ b/pkgs/tools/networking/rtptools/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   };
   meta = {
     description = "A number of small applications that can be used for processing RTP data";
-    homepage = "http://www.cs.columbia.edu/irt/software/rtptools/";
+    homepage = "https://www.cs.columbia.edu/irt/software/rtptools/";
     maintainers = [ lib.maintainers.lheckemann ];
     platforms = lib.platforms.unix;
     license = lib.licenses.bsd3;
diff --git a/pkgs/tools/networking/slimrat/default.nix b/pkgs/tools/networking/slimrat/default.nix
deleted file mode 100644
index 1c26dc27b3f..00000000000
--- a/pkgs/tools/networking/slimrat/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{stdenv, fetchurl, perlPackages, makeWrapper}:
-
-stdenv.mkDerivation {
-  name = "slimrat-1.0";
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/slimrat/slimrat-1.0.tar.bz2";
-    sha256 = "139b71d45k4b1y47iq62a9732cnaqqbh8s4knkrgq2hx0jxpsk5a";
-  };
-
-  buildInputs = [ makeWrapper ] ++ (with perlPackages; [ perl WWWMechanize LWP ]);
-
-  patchPhase = ''
-    sed -e 's,#!.*,#!${perlPackages.perl}/bin/perl,' -i src/{slimrat,slimrat-gui}
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/slimrat $out/bin
-    cp -R src/* $out/share/slimrat
-    # slimrat-gui does not work (it needs the Gtk2 perl package)
-    for i in slimrat; do
-      makeWrapper $out/share/slimrat/$i $out/bin/$i \
-        --prefix PERL5LIB : $PERL5LIB
-    done
-  '';
-
-  meta = {
-    homepage = "https://code.google.com/archive/p/slimrat/";
-    description = "Linux Rapidshare downloader";
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.unix;
-    broken = true; # officially abandonned upstream
-  };
-}
diff --git a/pkgs/tools/networking/slirp4netns/default.nix b/pkgs/tools/networking/slirp4netns/default.nix
index f3bd0a23d58..6b9279a8190 100644
--- a/pkgs/tools/networking/slirp4netns/default.nix
+++ b/pkgs/tools/networking/slirp4netns/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "152wmccz47anvx5w88qcz8higw80l17jl7i24xfj5574adviqnv2";
+    sha256 = "1p5cvq0jsjkl136b8cz3j552x01g96j38ygh6m8ss62bmyzb8ayc";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/package-management/nix-simple-deploy/default.nix b/pkgs/tools/package-management/nix-simple-deploy/default.nix
new file mode 100644
index 00000000000..3bc0b35c0f1
--- /dev/null
+++ b/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-simple-deploy";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "misuzu";
+    repo = pname;
+    rev = version;
+    sha256 = "12g0sbgs2dfnk0agp1kagfi1yhk26ga98zygxxrjhjxrqb2n5w80";
+  };
+
+  cargoSha256 = "0svnz9r0lrmz333qpbpdddjd46vh9i74qchws8aifa2qwnqy0kmn";
+
+  meta = with stdenv.lib; {
+    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/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index d8811b2a7e2..b6455cc1705 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -8,13 +8,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "0qsvrcxl97nih1yprydzlqc6n1ppg726664d6harx5kjzp5776mr";
+    sha256 = "0qkvjl4f8a1905yj3ml32rfdr5q76igz21gn3dcya0pfqhrnb28i";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix
index df5e3728943..def5458a240 100644
--- a/pkgs/tools/security/afl/default.nix
+++ b/pkgs/tools/security/afl/default.nix
@@ -68,7 +68,7 @@ let
         also useful for seeding other, more labor or resource-intensive
         testing regimes down the road.
       '';
-      homepage    = "http://lcamtuf.coredump.cx/afl/";
+      homepage    = "https://lcamtuf.coredump.cx/afl/";
       license     = stdenv.lib.licenses.asl20;
       platforms   = ["x86_64-linux" "i686-linux"];
       maintainers = with stdenv.lib.maintainers; [ thoughtpolice ris ];
diff --git a/pkgs/tools/security/afl/libdislocator.nix b/pkgs/tools/security/afl/libdislocator.nix
index 953c59e435c..103786d1244 100644
--- a/pkgs/tools/security/afl/libdislocator.nix
+++ b/pkgs/tools/security/afl/libdislocator.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "http://lcamtuf.coredump.cx/afl/";
+    homepage = "https://lcamtuf.coredump.cx/afl/";
     description = ''
       Drop-in replacement for the libc allocator which improves
       the odds of bumping into heap-related security bugs in
diff --git a/pkgs/tools/security/aflplusplus/default.nix b/pkgs/tools/security/aflplusplus/default.nix
new file mode 100644
index 00000000000..a52ea88950c
--- /dev/null
+++ b/pkgs/tools/security/aflplusplus/default.nix
@@ -0,0 +1,138 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper
+, clang, llvm, gcc, which, libcgroup, python, perl, gmp
+, wine ? null
+}:
+
+# wine fuzzing is only known to work for win32 binaries, and using a mixture of
+# 32 and 64-bit libraries ... complicates things, so it's recommended to build
+# a full 32bit version of this package if you want to do wine fuzzing
+assert (wine != null) -> (stdenv.targetPlatform.system == "i686-linux");
+
+let
+  aflplusplus-qemu = callPackage ./qemu.nix { inherit aflplusplus; };
+  qemu-exe-name = if stdenv.targetPlatform.system == "x86_64-linux" then "qemu-x86_64"
+    else if stdenv.targetPlatform.system == "i686-linux" then "qemu-i386"
+    else throw "aflplusplus: no support for ${stdenv.targetPlatform.system}!";
+  libdislocator = callPackage ./libdislocator.nix { inherit aflplusplus; };
+  libtokencap = callPackage ./libtokencap.nix { inherit aflplusplus; };
+  aflplusplus = stdenv.mkDerivation rec {
+    pname = "aflplusplus";
+    version = "2.59c";
+
+    src = fetchFromGitHub {
+      owner = "vanhauser-thc";
+      repo = "AFLplusplus";
+      rev = version;
+      sha256 = "1ik33ifk4n96762iv1h4kl4jf9yvsq2hgs097wkiy589siw44g5r";
+    };
+    enableParallelBuilding = true;
+
+    # Note: libcgroup isn't needed for building, just for the afl-cgroup
+    # script.
+    nativeBuildInputs = [ makeWrapper which ];
+    buildInputs = [ llvm python gmp ]
+      ++ stdenv.lib.optional (wine != null) python.pkgs.wrapPython;
+
+    makeFlags = [ "PREFIX=$(out)" ];
+    buildPhase = ''
+      common="$makeFlags -j$NIX_BUILD_CORES"
+      make all $common
+      make radamsa $common
+      make -C gcc_plugin CC=${gcc}/bin/gcc CXX=${gcc}/bin/g++ $common
+      make -C llvm_mode $common
+      make -C qemu_mode/libcompcov $common
+      make -C qemu_mode/unsigaction $common
+    '';
+
+    postInstall = ''
+      # the makefile neglects to install unsigaction
+      cp qemu_mode/unsigaction/unsigaction*.so $out/lib/afl/
+
+      # Install the custom QEMU emulator for binary blob fuzzing.
+      cp ${aflplusplus-qemu}/bin/${qemu-exe-name} $out/bin/afl-qemu-trace
+
+      # give user a convenient way of accessing libcompconv.so, libdislocator.so, libtokencap.so
+      cat > $out/bin/get-afl-qemu-libcompcov-so <<END
+      #!${stdenv.shell}
+      echo $out/lib/afl/libcompcov.so
+      END
+      chmod +x $out/bin/get-afl-qemu-libcompcov-so
+      cp ${libdislocator}/bin/get-libdislocator-so $out/bin/
+      cp ${libtokencap}/bin/get-libtokencap-so $out/bin/
+
+      # Install the cgroups wrapper for asan-based fuzzing.
+      cp experimental/asan_cgroups/limit_memory.sh $out/bin/afl-cgroup
+      chmod +x $out/bin/afl-cgroup
+      substituteInPlace $out/bin/afl-cgroup \
+        --replace "cgcreate" "${libcgroup}/bin/cgcreate" \
+        --replace "cgexec"   "${libcgroup}/bin/cgexec" \
+        --replace "cgdelete" "${libcgroup}/bin/cgdelete"
+
+      # Patch shebangs before wrapping
+      patchShebangs $out/bin
+
+      # Wrap afl-clang-fast(++) with a *different* AFL_PATH, because it
+      # has totally different semantics in that case(?) - and also set a
+      # proper AFL_CC and AFL_CXX so we don't pick up the wrong one out
+      # of $PATH.
+      # first though we need to replace the afl-clang-fast++ symlink with
+      # a real copy to prevent wrapProgram skipping the symlink and confusing
+      # nix's cc wrapper
+      rm $out/bin/afl-clang-fast++
+      cp $out/bin/afl-clang-fast $out/bin/afl-clang-fast++
+      for x in $out/bin/afl-clang-fast $out/bin/afl-clang-fast++; do
+        wrapProgram $x \
+          --set-default AFL_PATH "$out/lib/afl" \
+          --run 'export AFL_CC=''${AFL_CC:-${clang}/bin/clang} AFL_CXX=''${AFL_CXX:-${clang}/bin/clang++}'
+      done
+      # do similar for afl-gcc and afl-gcc-fast
+      for x in $out/bin/afl-gcc $out/bin/afl-gcc-fast; do
+        wrapProgram $x \
+          --set-default AFL_PATH "$out/lib/afl" \
+          --run 'export AFL_CC=''${AFL_CC:-${gcc}/bin/gcc} AFL_CXX=''${AFL_CXX:-${gcc}/bin/g++}'
+      done
+    '' + stdenv.lib.optionalString (wine != null) ''
+      substitute afl-wine-trace $out/bin/afl-wine-trace \
+        --replace "qemu_mode/unsigaction" "$out/lib/afl"
+      chmod +x $out/bin/afl-wine-trace
+
+      # qemu needs to be fed ELFs, not wrapper scripts, so we have to cheat a bit if we
+      # detect a wrapped wine
+      for winePath in ${wine}/bin/.wine ${wine}/bin/wine; do
+        if [ -x $winePath ]; then break; fi
+      done
+      makeWrapperArgs="--set-default 'AFL_WINE_PATH' '$winePath'" \
+        wrapPythonProgramsIn $out/bin ${python.pkgs.pefile}
+    '';
+
+    installCheckInputs = [ perl ];
+    doInstallCheck = true;
+    installCheckPhase = ''
+      # replace references to tools in build directory with references to installed locations
+      substituteInPlace test/test.sh \
+        --replace '`which gcc`' "" \
+        --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)gcc(?=\s)|${gcc}/bin/gcc|g' test/test.sh
+      perl -pi -e 's|(\.\./)(\S+?)(?<!\.c)(?<!\.s?o)(?=\s)|\$out/bin/\2|g' test/test.sh
+      cd test && ./test.sh
+    '';
+
+    passthru = {
+      inherit libdislocator libtokencap;
+      qemu = aflplusplus-qemu;
+    };
+
+    meta = {
+      description = ''
+        AFL++ is a heavily enhanced version of AFL, incorporating many features and
+        improvements from the community.
+      '';
+      homepage    = "https://github.com/vanhauser-thc/AFLplusplus";
+      license     = stdenv.lib.licenses.asl20;
+      platforms   = ["x86_64-linux" "i686-linux"];
+      maintainers = with stdenv.lib.maintainers; [ ris ];
+    };
+  };
+in aflplusplus
diff --git a/pkgs/tools/security/aflplusplus/libdislocator.nix b/pkgs/tools/security/aflplusplus/libdislocator.nix
new file mode 100644
index 00000000000..d1d9dad6c5b
--- /dev/null
+++ b/pkgs/tools/security/aflplusplus/libdislocator.nix
@@ -0,0 +1,35 @@
+{ stdenv, aflplusplus}:
+
+stdenv.mkDerivation {
+  version = stdenv.lib.getVersion aflplusplus;
+  pname = "libdislocator";
+
+  src = aflplusplus.src;
+  postUnpack = "chmod -R +w ${aflplusplus.src.name}";
+  sourceRoot = "${aflplusplus.src.name}/libdislocator";
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preInstall = ''
+    mkdir -p $out/lib/afl
+  '';
+  postInstall = ''
+    mkdir $out/bin
+    cat > $out/bin/get-libdislocator-so <<END
+    #!${stdenv.shell}
+    echo $out/lib/afl/libdislocator.so
+    END
+    chmod +x $out/bin/get-libdislocator-so
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/vanhauser-thc/AFLplusplus";
+    description = ''
+      Drop-in replacement for the libc allocator which improves
+      the odds of bumping into heap-related security bugs in
+      several ways.
+    '';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/tools/security/aflplusplus/libtokencap.nix b/pkgs/tools/security/aflplusplus/libtokencap.nix
new file mode 100644
index 00000000000..830708227e3
--- /dev/null
+++ b/pkgs/tools/security/aflplusplus/libtokencap.nix
@@ -0,0 +1,31 @@
+{ stdenv, aflplusplus}:
+
+stdenv.mkDerivation {
+  version = stdenv.lib.getVersion aflplusplus;
+  pname = "libtokencap";
+
+  src = aflplusplus.src;
+  postUnpack = "chmod -R +w ${aflplusplus.src.name}";
+  sourceRoot = "${aflplusplus.src.name}/libtokencap";
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preInstall = ''
+    mkdir -p $out/lib/afl
+  '';
+  postInstall = ''
+    mkdir $out/bin
+    cat > $out/bin/get-libtokencap-so <<END
+    #!${stdenv.shell}
+    echo $out/lib/afl/libtokencap.so
+    END
+    chmod +x $out/bin/get-libtokencap-so
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/vanhauser-thc/AFLplusplus";
+    description = "strcmp & memcmp token capture library";
+    license = stdenv.lib.licenses.asl20;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch b/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch
new file mode 100644
index 00000000000..5dfbfd780f1
--- /dev/null
+++ b/pkgs/tools/security/aflplusplus/qemu-no-etc-install.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index d6b9dc1..ce7c493 100644
+--- a/Makefile
++++ b/Makefile
+@@ -601,7 +601,7 @@ install-localstatedir:
+ endif
+ 
+ 
+-install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
++install: all $(if $(BUILD_DOCS),install-doc) install-datadir
+ ifneq ($(TOOLS),)
+ 	$(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
+ endif
diff --git a/pkgs/tools/security/aflplusplus/qemu.nix b/pkgs/tools/security/aflplusplus/qemu.nix
new file mode 100644
index 00000000000..202657dac9a
--- /dev/null
+++ b/pkgs/tools/security/aflplusplus/qemu.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, aflplusplus, python2, zlib, pkgconfig, glib, perl
+, texinfo, libuuid, flex, bison, pixman, autoconf
+}:
+
+with stdenv.lib;
+
+let
+  qemuName = "qemu-3.1.0";
+  cpuTarget = if stdenv.targetPlatform.system == "x86_64-linux" then "x86_64-linux-user"
+    else if stdenv.targetPlatform.system == "i686-linux" then "i386-linux-user"
+    else throw "aflplusplus: no support for ${stdenv.targetPlatform.system}!";
+in
+stdenv.mkDerivation {
+  name = "aflplusplus-${qemuName}";
+
+  srcs = [
+    (fetchurl {
+      url = "http://wiki.qemu.org/download/${qemuName}.tar.bz2";
+      sha256 = "08frr1fdjx8qcfh3fafn10kibdwbvkqqvfl7hpqbm7i9dg4f1zlq";
+    })
+    aflplusplus.src
+  ];
+
+  sourceRoot = qemuName;
+
+  postUnpack = ''
+    chmod -R +w ${aflplusplus.src.name}
+    for f in ${aflplusplus.src.name}/qemu_mode/patches/* ; do
+      sed -E -i 's|(\.\./)+patches/([a-z-]+\.h)|\2|g' $f
+      sed -E -i 's|\.\./\.\./config\.h|afl-config.h|g' $f
+    done
+    cp ${aflplusplus.src.name}/qemu_mode/patches/*.h $sourceRoot/
+    cp ${aflplusplus.src.name}/types.h $sourceRoot/afl-types.h
+    substitute ${aflplusplus.src.name}/config.h $sourceRoot/afl-config.h \
+      --replace "types.h" "afl-types.h"
+
+    cat ${aflplusplus.src.name}/qemu_mode/patches/*.diff > all.patch
+  '';
+
+  nativeBuildInputs = [
+    python2 perl pkgconfig flex bison autoconf texinfo
+  ];
+
+  buildInputs = [
+    zlib glib pixman libuuid
+  ];
+
+  enableParallelBuilding = true;
+
+  patches = [
+    # patches extracted from aflplusplus source
+    "../all.patch"
+    # nix-specific patches to make installation more well-behaved
+    ./qemu-no-etc-install.patch
+  ];
+
+  configureFlags =
+    [ "--disable-system"
+      "--enable-linux-user"
+      "--disable-gtk"
+      "--disable-sdl"
+      "--disable-vnc"
+      "--disable-kvm"
+      "--target-list=${cpuTarget}"
+      "--enable-pie"
+      "--sysconfdir=/etc"
+      "--localstatedir=/var"
+    ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.qemu.org/;
+    description = "Fork of QEMU with AFL++ instrumentation support";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ris ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index f2314d7a0e8..2161aa5f1cd 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "108pwk0h6zcbfmp0k8rhjxaa9yk8rhb78aaql22x48n11fnjl27i";
+    sha256 = "0pmxis3m3madwnmswz9hn0i8fz6a9bg11slgrrwql7mx23ijqf6y";
   };
 
-  cargoSha256 = "1xh2ylx5fqblhlrs8yhl3zf8kvgrqnwdwmix6yzch9bi5mv5c11w";
+  cargoSha256 = "165g1v0c8jxs8ddm8ld0hh7k8mvk3566ig43pf99hnw009fg1yc2";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/security/p0f/default.nix b/pkgs/tools/security/p0f/default.nix
index 1e618cdce1a..02d888b725f 100644
--- a/pkgs/tools/security/p0f/default.nix
+++ b/pkgs/tools/security/p0f/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Passive network reconnaissance and fingerprinting tool";
-    homepage    = "http://lcamtuf.coredump.cx/p0f3/";
+    homepage    = "https://lcamtuf.coredump.cx/p0f3/";
     license     = stdenv.lib.licenses.lgpl21;
     platforms   = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
diff --git a/pkgs/tools/security/pcsc-cyberjack/default.nix b/pkgs/tools/security/pcsc-cyberjack/default.nix
index cb651ff7ce1..7ae062547aa 100644
--- a/pkgs/tools/security/pcsc-cyberjack/default.nix
+++ b/pkgs/tools/security/pcsc-cyberjack/default.nix
@@ -1,25 +1,28 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libusb1, pcsclite }:
 
-stdenv.mkDerivation rec {
+let
+  version = "3.99.5";
+  suffix = "SP13";
+  tarBall = "${version}final.${suffix}";
+
+in stdenv.mkDerivation rec {
   pname = "pcsc-cyberjack";
-  version = "3.99.5_SP13";
-
-  src = with stdenv.lib; let
-    splittedVer = splitString "_" version;
-    mainVer = if length splittedVer >= 1 then head splittedVer else version;
-    spVer = optionalString (length splittedVer >= 1) ("." + last splittedVer);
-    tarballVersion = "${mainVer}final${spVer}";
-  in fetchurl {
-    url = "http://support.reiner-sct.de/downloads/LINUX/V${version}"
-        + "/pcsc-cyberjack_${tarballVersion}.tar.gz";
+  inherit version;
+
+  src = fetchurl {
+    url =
+      "http://support.reiner-sct.de/downloads/LINUX/V${version}_${suffix}/${pname}_${tarBall}.tar.gz";
     sha256 = "1lx4bfz4riz7j77sl65akyxzww0ygm63w0c1b75knr1pijlv8d3b";
   };
 
   outputs = [ "out" "tools" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
   buildInputs = [ libusb1 pcsclite ];
 
+  enableParallelBuilding = true;
+
   configureFlags = [
     "--with-usbdropdir=${placeholder "out"}/pcsc/drivers"
     "--bindir=${placeholder "tools"}/bin"
@@ -31,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "REINER SCT cyberJack USB chipcard reader user space driver";
     homepage = "https://www.reiner-sct.com/";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ aszlig ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index f5b5d4ef7a2..36456501618 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -1,14 +1,34 @@
-{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper
+, ps, dnsutils # dig is recommended for multiple categories
+, withRecommends ? false # Install (almost) all recommended tools (see --recommends)
+, withRecommendedSystemPrograms ? withRecommends, utillinuxMinimal, dmidecode
+, file, hddtemp, iproute, ipmitool, usbutils, kmod, lm_sensors, smartmontools
+, binutils, tree, upower
+, withRecommendedDisplayInformationPrograms ? withRecommends, glxinfo, xorg
+}:
 
-stdenv.mkDerivation rec {
+let
+  prefixPath = programs:
+    "--prefix PATH ':' '${stdenv.lib.makeBinPath programs}'";
+  recommendedSystemPrograms = lib.optionals withRecommendedSystemPrograms [
+    utillinuxMinimal dmidecode file hddtemp iproute ipmitool usbutils kmod
+    lm_sensors smartmontools binutils tree upower
+  ];
+  recommendedDisplayInformationPrograms = lib.optionals
+    withRecommendedDisplayInformationPrograms
+    ([ glxinfo ] ++ (with xorg; [ xdpyinfo xprop xrandr ]));
+  programs = [ ps dnsutils ] # Core programs
+    ++ recommendedSystemPrograms
+    ++ recommendedDisplayInformationPrograms;
+in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.0.38-1";
+  version = "3.1.00-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "1qw3sxgd3ly916bzzl3873s3flngwd3vh57slw0shsj7ivz8bfnm";
+    sha256 = "0md6yfd297l8695g0rsbs4mm74dc3k00rfjl4x2n4i33mkylp6qa";
   };
 
   buildInputs = [ perl makeWrapper ];
@@ -17,13 +37,21 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp inxi $out/bin/
     wrapProgram $out/bin/inxi \
-      --set PERL5LIB "${perlPackages.makePerlPath (with perlPackages; [ CpanelJSONXS ])}"
+      --set PERL5LIB "${perlPackages.makePerlPath (with perlPackages; [ CpanelJSONXS ])}" \
+      ${prefixPath programs}
     mkdir -p $out/share/man/man1
     cp inxi.1 $out/share/man/man1/
   '';
 
   meta = with stdenv.lib; {
     description = "A full featured CLI system information tool";
+    longDescription = ''
+      inxi is a command line system information script built for console and
+      IRC. It is also used a debugging tool for forum technical support to
+      quickly ascertain users' system configurations and hardware. inxi shows
+      system hardware, CPU, drivers, Xorg, Desktop, Kernel, gcc version(s),
+      Processes, RAM usage, and a wide variety of other useful information.
+    '';
     homepage = "https://smxi.org/docs/inxi.htm";
     changelog = "https://github.com/smxi/inxi/blob/${version}/inxi.changelog";
     license = licenses.gpl3Plus;
diff --git a/pkgs/tools/system/ytop/default.nix b/pkgs/tools/system/ytop/default.nix
index de1678958db..562886ad57e 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.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "cjbassi";
     repo = pname;
     rev = version;
-    sha256 = "1wpxn8i5112pzs8b03shl627r2yz70lvzjhd6f5crwhsnir06h5x";
+    sha256 = "1zajgzhhxigga5wc94bmbk8iwx7yc2jq3f0hqadfsa4f0wmpi0nf";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
-  cargoSha256 = "0wmlmkq4y2923i5kjhprw2hd2v5qls49ncs6h8g9rdlmwd7qdl86";
+  cargoSha256 = "1ka9d81ddzz52w75xdiwd2xkv1rlamyvvdax09wanb61zxxwm0i7";
 
   meta = with stdenv.lib; {
     description = "A TUI system monitor written in Rust";
diff --git a/pkgs/tools/text/glogg/default.nix b/pkgs/tools/text/glogg/default.nix
index 9dec057dfe9..90c1419ef30 100644
--- a/pkgs/tools/text/glogg/default.nix
+++ b/pkgs/tools/text/glogg/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, qmake, boost }:
+{ mkDerivation, stdenv, fetchurl, qmake, boost }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
 
   pname = "glogg";
   version = "1.1.4";
diff --git a/pkgs/tools/text/sd/default.nix b/pkgs/tools/text/sd/default.nix
index a12f07d6da6..0e905be01f2 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.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15siv3p22v7lj37b74pjsy360qx97d40q2xdzdg2srbi8svjgg27";
+    sha256 = "0y1mabnp0sbvayn695x1yfw04d2bky0r69wyidld6hllq3kqn9y2";
   };
 
-  cargoSha256 = "1sa7ki7kyg98l2gcrdzk7182ghm1clyqljjb596mhzh48g8kddn5";
+  cargoSha256 = "1ra6argxs5dmpxhrr3az21myp27fl3nkdjfqn8cam2xhld1y270l";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix
index 5800cedf7f1..c0ae6b8e187 100644
--- a/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -76,6 +76,14 @@ let
         url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/texlive-poppler-0.86.patch?h=packages/texlive-bin&id=60244e41bb6f1501e8ed1fc9e6b7ba8d3f283398";
         sha256 = "0pdvhaqc3zgz7hp0x3a4qs0nh26fkvgmr6w1cjljqhp1nyiw2f1l";
       })
+
+      # Needed for ghostscript>=9.50
+      (fetchpatch {
+        name = "xdvipdfm-fix.patch";
+        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/spc_dvips.c?view=patch&r1=52765&r2=52764&pathrev=52765";
+        sha256 = "0qvrc7yxhbl5f4g340z8aql388bwib0m2gxd473skbmviy5bjr3f";
+        stripLen = 2;
+      })
     ];
 
     # remove when removing synctex-missing-header.patch
diff --git a/pkgs/tools/virtualization/cri-tools/default.nix b/pkgs/tools/virtualization/cri-tools/default.nix
index 8c57fdeed00..dced8672ee6 100644
--- a/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/pkgs/tools/virtualization/cri-tools/default.nix
@@ -21,6 +21,6 @@ buildGoPackage rec {
     description = "CLI and validation tools for Kubelet Container Runtime Interface (CRI)";
     homepage = "https://github.com/kubernetes-sigs/cri-tools";
     license = lib.licenses.asl20;
-    maintainers = with maintainers; [ saschagrunert ];
+    maintainers = with maintainers; [ ] ++ teams.podman.members;
   };
 }
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 9ad282149aa..a115a70d44a 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -169,6 +169,7 @@ mapAliases ({
   go-pup = pup; # added 2017-12-19
   gobjectIntrospection = gobject-introspection; # added 2018-12-02
   goimports = gotools; # added 2018-09-16
+  gometalinter = throw "Abandoned by upstream. Consider switching to golangci-lint instead"; # added 2020-04-23
   google-gflags = gflags; # added 2019-07-25
   googleAuthenticator = google-authenticator; # added 2016-10-16
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e09819318aa..bbcdaf3a5a7 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -585,6 +585,12 @@ in
     stdenv = clangStdenv;
   };
 
+  aflplusplus = callPackage ../tools/security/aflplusplus {
+    stdenv = clangStdenv;
+    python = python37;
+    wine = null;
+  };
+
   libdislocator = callPackage ../tools/security/afl/libdislocator.nix { };
 
   afpfs-ng = callPackage ../tools/filesystems/afpfs-ng { };
@@ -920,6 +926,8 @@ in
 
   libfx2 = with python3Packages; toPythonApplication fx2;
 
+  fitnesstrax = callPackage ../applications/misc/fitnesstrax/default.nix { };
+
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
   genymotion = callPackage ../development/mobile/genymotion { };
@@ -6609,8 +6617,6 @@ in
 
   sleepyhead = callPackage ../applications/misc/sleepyhead {};
 
-  slimrat = callPackage ../tools/networking/slimrat { };
-
   slirp4netns = callPackage ../tools/networking/slirp4netns/default.nix { };
 
   slsnif = callPackage ../tools/misc/slsnif { };
@@ -8504,6 +8510,8 @@ in
 
   pscid = nodePackages.pscid;
 
+  remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
+
   tacacsplus = callPackage ../servers/tacacsplus { };
 
   tamarin-prover =
@@ -8597,8 +8605,6 @@ in
 
   gogetdoc = callPackage ../development/tools/gogetdoc { };
 
-  gometalinter = callPackage ../development/tools/gometalinter { };
-
   gox = callPackage ../development/tools/gox { };
 
   gprolog = callPackage ../development/compilers/gprolog { };
@@ -12293,8 +12299,8 @@ in
   isocodes = callPackage ../development/libraries/iso-codes { };
 
   ispc = callPackage ../development/compilers/ispc {
-    llvmPackages = llvmPackages_6;
-    stdenv = llvmPackages_6.stdenv;
+    stdenv = llvmPackages_10.stdenv;
+    llvmPackages = llvmPackages_10;
   };
 
   isso = callPackage ../servers/isso { };
@@ -17045,7 +17051,7 @@ in
     };
     kernelPatches = kernel.kernelPatches ++ [
       kernelPatches.tag_hardened
-      kernelPatches.hardened.${kernel.version}
+      kernelPatches.hardened.${kernel.meta.branch}
     ];
     modDirVersionArg = kernel.modDirVersion + "-hardened";
   });
@@ -17263,6 +17269,8 @@ in
 
   go-langserver = callPackage ../development/tools/go-langserver { };
 
+  gopls = callPackage ../development/tools/gopls { };
+
   gotests = callPackage ../development/tools/gotests { };
 
   gotestsum = callPackage ../development/tools/gotestsum {
@@ -18939,7 +18947,7 @@ in
 
   dablin = callPackage ../applications/radio/dablin { };
 
-  darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskell.packages.ghc865.darcs) (drv: {
+  darcs = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.darcs) (drv: {
     configureFlags = (stdenv.lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
   });
 
@@ -19936,6 +19944,8 @@ in
 
   leftwm = callPackage ../applications/window-managers/leftwm { };
 
+  musikcube = callPackage ../applications/audio/musikcube {};
+
   pinboard-notes-backup = haskell.lib.overrideCabal
     (haskell.lib.generateOptparseApplicativeCompletion "pnbackup"
       haskellPackages.pinboard-notes-backup)
@@ -20202,7 +20212,13 @@ in
   k3d = callPackage ../applications/graphics/k3d {
     inherit (pkgs.gnome2) gtkglext;
     stdenv = gcc6Stdenv;
-    boost = boost155.override { enablePython = true; };
+    boost = boost155.override {
+      enablePython = true;
+      stdenv = gcc6Stdenv;
+      buildPackages = buildPackages // {
+        stdenv = gcc6Stdenv;
+      };
+    };
   };
 
   k3s = callPackage ../applications/networking/cluster/k3s {};
@@ -22268,6 +22284,8 @@ in
   uefitoolPackages = recurseIntoAttrs (callPackage ../tools/system/uefitool/variants.nix {});
   uefitool = uefitoolPackages.new-engine;
 
+  ungoogled-chromium = callPackage ../applications/networking/browsers/ungoogled-chromium (config.chromium or {});
+
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
   unison = callPackage ../applications/networking/sync/unison {
@@ -24439,6 +24457,8 @@ in
 
   prodigal = callPackage ../applications/science/biology/prodigal { };
 
+  quast = callPackage ../applications/science/biology/quast { };
+
   raxml = callPackage ../applications/science/biology/raxml { };
 
   raxml-mpi = appendToName "mpi" (raxml.override {
@@ -25683,6 +25703,8 @@ in
 
   nix-serve = callPackage ../tools/package-management/nix-serve { };
 
+  nix-simple-deploy = callPackage ../tools/package-management/nix-simple-deploy { };
+
   nixfmt = haskell.lib.justStaticExecutables haskellPackages.nixfmt;
 
   nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };
@@ -26495,4 +26517,5 @@ in
 
   jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron { };
 
+  zenstates = callPackage ../os-specific/linux/zenstates {};
 }
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index aa7ef02a388..ae985f8b75d 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -56,12 +56,6 @@ in {
       buildLlvmPackages = buildPackages.llvmPackages_6;
       llvmPackages = pkgs.llvmPackages_6;
     };
-    ghc881 = callPackage ../development/compilers/ghc/8.8.1.nix {
-      bootPkgs = packages.ghc865Binary;
-      inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_7;
-      llvmPackages = pkgs.llvmPackages_7;
-    };
     ghc882 = callPackage ../development/compilers/ghc/8.8.2.nix {
       bootPkgs = packages.ghc865Binary;
       inherit (buildPackages.python3Packages) sphinx;
@@ -134,11 +128,6 @@ in {
       ghc = bh.compiler.ghc865;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
     };
-    ghc881 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc881;
-      ghc = bh.compiler.ghc881;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
-    };
     ghc882 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc882;
       ghc = bh.compiler.ghc882;
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 27b7f852707..b3597404edd 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -12251,6 +12251,22 @@ let
     };
   };
 
+  MojoliciousPluginTextExceptions = buildPerlPackage {
+    pname = "Mojolicious-Plugin-TextExceptions";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.01.tar.gz";
+      sha256 = "070daf284c5d3832b7fde42120eaf747aea4cc75de8ff807f77accc84fe4f22e";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions";
+      description = "Render exceptions as text in command line user agents";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MojoRedis = buildPerlPackage {
     pname = "Mojo-Redis";
     version = "3.24";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ea246c3f86a..ddb4136f367 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1071,6 +1071,8 @@ in {
 
   purl = callPackage ../development/python-modules/purl { };
 
+  pyclipper = callPackage ../development/python-modules/pyclipper { };
+
   pymystem3 = callPackage ../development/python-modules/pymystem3 { };
 
   pymysql = callPackage ../development/python-modules/pymysql { };
@@ -2759,6 +2761,8 @@ in {
 
   fastdtw = callPackage ../development/python-modules/fastdtw { };
 
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+
   faulthandler = if ! isPy3k
     then callPackage ../development/python-modules/faulthandler {}
     else throw "faulthandler is built into ${python.executable}";
@@ -3286,6 +3290,8 @@ in {
 
   pytools = callPackage ../development/python-modules/pytools { };
 
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
+
   python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
   python-lzo = callPackage ../development/python-modules/python-lzo {
@@ -5520,6 +5526,8 @@ in {
 
   readchar = callPackage ../development/python-modules/readchar { };
 
+  retworkx = callPackage ../development/python-modules/retworkx { };
+
   rivet = disabledIf isPy3k (toPythonModule (pkgs.rivet.override {
     python2 = python;
   }));